From ae97399c75f01bafee7e953087a9a741ccc6dfb2 Mon Sep 17 00:00:00 2001 From: msojocs Date: Sat, 6 Jul 2024 10:25:01 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=B0=83=E6=95=B4=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 +- CMakeLists1.txt | 60 ------------------- src/{nwjs => module}/.gitignore | 0 src/{nwjs => module}/CMakeLists.txt | 12 ++-- src/{nwjs => module}/config/wcc.cc | 0 src/{nwjs => module}/config/wcsc.cc | 0 src/{nwjs => module}/include/wcc.hh | 0 src/{nwjs => module}/wcc.cpp | 0 .../wcc/lib/index.js:Zone.Identifier | 2 - .../wcc/lib/util.js:Zone.Identifier | 2 - .../package.nw/wcc/lib/wcc.js:Zone.Identifier | 2 - .../wcc/lib/wcsc.js:Zone.Identifier | 2 - .../wcc/package.json:Zone.Identifier | 2 - test/runner/nwjs/wine-prepare.sh | 43 +++++++++++++ test/spec/wcc/module/module.spec.ts | 8 +-- test/spec/wcc/module/nwjs-download.sh | 16 ----- 16 files changed, 52 insertions(+), 99 deletions(-) delete mode 100644 CMakeLists1.txt rename src/{nwjs => module}/.gitignore (100%) rename src/{nwjs => module}/CMakeLists.txt (78%) rename src/{nwjs => module}/config/wcc.cc (100%) rename src/{nwjs => module}/config/wcsc.cc (100%) rename src/{nwjs => module}/include/wcc.hh (100%) rename src/{nwjs => module}/wcc.cpp (100%) delete mode 100644 test/runner/nwjs/package.nw/wcc/lib/index.js:Zone.Identifier delete mode 100644 test/runner/nwjs/package.nw/wcc/lib/util.js:Zone.Identifier delete mode 100644 test/runner/nwjs/package.nw/wcc/lib/wcc.js:Zone.Identifier delete mode 100644 test/runner/nwjs/package.nw/wcc/lib/wcsc.js:Zone.Identifier delete mode 100644 test/runner/nwjs/package.nw/wcc/package.json:Zone.Identifier create mode 100755 test/runner/nwjs/wine-prepare.sh delete mode 100755 test/spec/wcc/module/nwjs-download.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b3dcfd..adde013 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,4 +104,4 @@ set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) include(CPack) -add_subdirectory(./src/nwjs) \ No newline at end of file +add_subdirectory(./src/module) \ No newline at end of file diff --git a/CMakeLists1.txt b/CMakeLists1.txt deleted file mode 100644 index 4f8055e..0000000 --- a/CMakeLists1.txt +++ /dev/null @@ -1,60 +0,0 @@ -cmake_minimum_required(VERSION 3.0.0) -project(mylrc VERSION 0.1.0) - -find_package(cJSON REQUIRED) -find_package(OpenSSL REQUIRED) - -include(CTest) -enable_testing() -include_directories(./src/include) -add_executable( - mylrc - main.cpp - src/common.cpp - src/tmc.cpp - src/ae.cpp - src/ae/keyExpansion.cpp - src/ae/storeStateArray.cpp - src/ae/shiftRows.cpp - src/ae/loadStateArray.cpp - src/ae/mixColumns.cpp - src/ae/subBytes.cpp - src/ae/addRoundKey.cpp - src/ka.cpp - src/kq.cpp - src/print_hex.cpp - ) -target_link_libraries( - mylrc - PRIVATE cjson - OpenSSL::SSL - ) - -add_executable(mylrc_test test/test.cpp) -add_executable( - storeStateArray_test - test/storeStateArray_test.cpp - src/common.cpp - src/ae/storeStateArray.cpp -) -add_executable( - printHex_test - test/printHex_test.cpp - src/print_hex.cpp -) -add_executable( - md5_test - test/md5_test.cpp - src/kq.cpp -) -target_link_libraries(md5_test OpenSSL::SSL) -# add_subdirectory(src) -add_test( - mylrc_test - $# - ) - - -set(CPACK_PROJECT_NAME ${PROJECT_NAME}) -set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) -include(CPack) diff --git a/src/nwjs/.gitignore b/src/module/.gitignore similarity index 100% rename from src/nwjs/.gitignore rename to src/module/.gitignore diff --git a/src/nwjs/CMakeLists.txt b/src/module/CMakeLists.txt similarity index 78% rename from src/nwjs/CMakeLists.txt rename to src/module/CMakeLists.txt index bb06e87..7ab610a 100644 --- a/src/nwjs/CMakeLists.txt +++ b/src/module/CMakeLists.txt @@ -37,7 +37,7 @@ include_directories(node/include/node) include_directories(node/deps/v8/include) include_directories(node/deps/uv/include) -add_library(wcc_node +add_library(wcc_module SHARED ./wcc.cpp ./include/wcc.hh @@ -84,10 +84,10 @@ add_library(wcc_node ../utils/file.cpp ) +set_target_properties(wcc_module PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) # DV8_COMPRESS_POINTERS: 缺少会导致IsString崩溃 -target_compile_options(wcc_node PRIVATE "-DNODE_GYP_MODULE_NAME=binding" "-DUSING_UV_SHARED=1" "-DUSING_V8_SHARED=1" "-DV8_DEPRECATION_WARNINGS=1" "-DV8_DEPRECATION_WARNINGS" "-DV8_REVERSE_JSARGS" "-D_GLIBCXX_USE_CXX11_ABI=1" "-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS" "-D_LARGEFILE_SOURCE" "-D_FILE_OFFSET_BITS=64" "-DV8_COMPRESS_POINTERS" "-DV8_31BIT_SMIS_ON_64BIT_ARCH" "-D__STDC_FORMAT_MACROS" "-DOPENSSL_NO_PINSHARED" "-DOPENSSL_THREADS" "-DOPENSSL_NO_ASM" "-DBUILDING_NODE_EXTENSION") -set_target_properties(wcc_node PROPERTIES RUNTIME_OUTPUT_DIRECTORY /home/msojocs/github/wx-compiler/cache/package.nw) -set_target_properties(wcc_node PROPERTIES PREFIX "" SUFFIX ".node") -# target_link_libraries(wcc_node ${CMAKE_CURRENT_SOURCE_DIR}/lib/nw-v${NW_VERSION}.lib) -# target_link_libraries(wcc_node ${CMAKE_CURRENT_SOURCE_DIR}/lib/node-v${NW_VERSION}.lib) +target_compile_options(wcc_module PRIVATE "-DNODE_GYP_MODULE_NAME=binding" "-DUSING_UV_SHARED=1" "-DUSING_V8_SHARED=1" "-DV8_DEPRECATION_WARNINGS=1" "-DV8_DEPRECATION_WARNINGS" "-DV8_REVERSE_JSARGS" "-D_GLIBCXX_USE_CXX11_ABI=1" "-D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS" "-D_LARGEFILE_SOURCE" "-D_FILE_OFFSET_BITS=64" "-DV8_COMPRESS_POINTERS" "-DV8_31BIT_SMIS_ON_64BIT_ARCH" "-D__STDC_FORMAT_MACROS" "-DOPENSSL_NO_PINSHARED" "-DOPENSSL_THREADS" "-DOPENSSL_NO_ASM" "-DBUILDING_NODE_EXTENSION") +set_target_properties(wcc_module PROPERTIES PREFIX "" SUFFIX ".node") +# target_link_libraries(wcc_module ${CMAKE_CURRENT_SOURCE_DIR}/lib/nw-v${NW_VERSION}.lib) +# target_link_libraries(wcc_module ${CMAKE_CURRENT_SOURCE_DIR}/lib/node-v${NW_VERSION}.lib) diff --git a/src/nwjs/config/wcc.cc b/src/module/config/wcc.cc similarity index 100% rename from src/nwjs/config/wcc.cc rename to src/module/config/wcc.cc diff --git a/src/nwjs/config/wcsc.cc b/src/module/config/wcsc.cc similarity index 100% rename from src/nwjs/config/wcsc.cc rename to src/module/config/wcsc.cc diff --git a/src/nwjs/include/wcc.hh b/src/module/include/wcc.hh similarity index 100% rename from src/nwjs/include/wcc.hh rename to src/module/include/wcc.hh diff --git a/src/nwjs/wcc.cpp b/src/module/wcc.cpp similarity index 100% rename from src/nwjs/wcc.cpp rename to src/module/wcc.cpp diff --git a/test/runner/nwjs/package.nw/wcc/lib/index.js:Zone.Identifier b/test/runner/nwjs/package.nw/wcc/lib/index.js:Zone.Identifier deleted file mode 100644 index a45e1ac..0000000 --- a/test/runner/nwjs/package.nw/wcc/lib/index.js:Zone.Identifier +++ /dev/null @@ -1,2 +0,0 @@ -[ZoneTransfer] -ZoneId=3 diff --git a/test/runner/nwjs/package.nw/wcc/lib/util.js:Zone.Identifier b/test/runner/nwjs/package.nw/wcc/lib/util.js:Zone.Identifier deleted file mode 100644 index a45e1ac..0000000 --- a/test/runner/nwjs/package.nw/wcc/lib/util.js:Zone.Identifier +++ /dev/null @@ -1,2 +0,0 @@ -[ZoneTransfer] -ZoneId=3 diff --git a/test/runner/nwjs/package.nw/wcc/lib/wcc.js:Zone.Identifier b/test/runner/nwjs/package.nw/wcc/lib/wcc.js:Zone.Identifier deleted file mode 100644 index a45e1ac..0000000 --- a/test/runner/nwjs/package.nw/wcc/lib/wcc.js:Zone.Identifier +++ /dev/null @@ -1,2 +0,0 @@ -[ZoneTransfer] -ZoneId=3 diff --git a/test/runner/nwjs/package.nw/wcc/lib/wcsc.js:Zone.Identifier b/test/runner/nwjs/package.nw/wcc/lib/wcsc.js:Zone.Identifier deleted file mode 100644 index a45e1ac..0000000 --- a/test/runner/nwjs/package.nw/wcc/lib/wcsc.js:Zone.Identifier +++ /dev/null @@ -1,2 +0,0 @@ -[ZoneTransfer] -ZoneId=3 diff --git a/test/runner/nwjs/package.nw/wcc/package.json:Zone.Identifier b/test/runner/nwjs/package.nw/wcc/package.json:Zone.Identifier deleted file mode 100644 index a45e1ac..0000000 --- a/test/runner/nwjs/package.nw/wcc/package.json:Zone.Identifier +++ /dev/null @@ -1,2 +0,0 @@ -[ZoneTransfer] -ZoneId=3 diff --git a/test/runner/nwjs/wine-prepare.sh b/test/runner/nwjs/wine-prepare.sh new file mode 100755 index 0000000..696d3f8 --- /dev/null +++ b/test/runner/nwjs/wine-prepare.sh @@ -0,0 +1,43 @@ +#! /bin/bash + +set -ex +root_dir=$(cd `dirname $0`/../../.. && pwd -P) +cur_dir=$(cd `dirname $0` && pwd -P) + +nw_version="0.55.0" + +if [ ! -f "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip" ];then + wget -c -O "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip.tmp" "https://dl.nwjs.io/v0.55.0/nwjs-v0.55.0-win-x64.zip" + mv "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip.tmp" "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip" +fi + +if [ ! -d "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64" ];then + cd "$root_dir/cache" + unzip "nwjs-sdk-v$nw_version-win-x64.zip" +fi + +rm -rf "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64/package.nw" +cp -r "$cur_dir/package.nw" "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64" + +docker run -d -it\ + --volume=$root_dir:/workspace\ + --env=USE_XVFB=yes\ + --env=XVFB_SERVER=:95\ + --env=XVFB_SCREEN=0\ + --env=XVFB_RESOLUTION=320x240x8\ + --env=DISPLAY=:95\ + --rm\ + --hostname=DESKTOP-1TV4OAG\ + --name=wine\ + --shm-size=1g\ + --workdir=/home/wineuser\ + --env=TZ=Asia/Shanghai\ + --volume=winehome:/home/wineuser\ + -p 8083:8083\ + scottyhardy/docker-wine:latest\ + wine /workspace/cache/nwjs-sdk-v$nw_version-win-x64/nw.exe + +sleep 10 +curl http://localhost:8083 +# curl http://localhost:8083/close +# docker stop wine \ No newline at end of file diff --git a/test/spec/wcc/module/module.spec.ts b/test/spec/wcc/module/module.spec.ts index bdbea99..8ea0b99 100644 --- a/test/spec/wcc/module/module.spec.ts +++ b/test/spec/wcc/module/module.spec.ts @@ -4,16 +4,12 @@ import path from 'path'; import linux from '../../../runner/module-linux' import windows from '../../../runner/module-windows' import * as fs from 'fs' -import { execFileSync, execSync } from 'child_process'; +import { execFileSync } from 'child_process'; describe("wcc - module", function () { this.beforeAll(() => { // TODO: 启动docker wine容器 - execFileSync(path.resolve(__dirname, './nwjs-download.sh')) - - const rootDir = path.resolve(__dirname, '../../../') - const cmd = `docker run -it --volume=${rootDir}:/workspace --env=USE_XVFB=yes --env=XVFB_SERVER=:95 --env=XVFB_SCREEN=0 --env=XVFB_RESOLUTION=320x240x8 --env=DISPLAY=:95 --rm --hostname=DESKTOP-1TV4OAG --name=wine --shm-size=1g --workdir=/home/wineuser --env=TZ=Asia/Shanghai --volume=winehome:/home/wineuser -p 8083:8083 scottyhardy/docker-wine:latest wine /workspace/nwjs-sdk-v0.55.0-win-x64/nw.exe` - execSync(cmd) + execFileSync(path.resolve(__dirname, '../../../runner/nwjs/wine-prepare.sh'), { stdio: 'inherit' }) }) describe("llw: linux output should deep equal with wine", function () { // afterEach(function(){ diff --git a/test/spec/wcc/module/nwjs-download.sh b/test/spec/wcc/module/nwjs-download.sh deleted file mode 100755 index affd037..0000000 --- a/test/spec/wcc/module/nwjs-download.sh +++ /dev/null @@ -1,16 +0,0 @@ -#! /bin/bash - -set -e -root_dir=$(cd `dirname $0`/../../../.. && pwd -P) - -nw_version="0.55.0" - -if [ ! -f "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip" ];then - wget -c -O "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip.tmp" "https://dl.nwjs.io/v0.55.0/nwjs-v0.55.0-win-x64.zip" - mv "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip.tmp" "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64.zip" -fi - -if [ ! -d "$root_dir/cache/nwjs-sdk-v$nw_version-win-x64" ];then - cd "$root_dir/cache" - unzip "nwjs-sdk-v$nw_version-win-x64.zip" -fi \ No newline at end of file