This is an automated email from the ASF dual-hosted git repository. hsun pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-teaclave.git
commit 555a2c29d6a434a534a889cc1f8c6f4d240aca84 Author: GeminiCarrie <[email protected]> AuthorDate: Fri Apr 7 02:32:50 2023 +0000 Add libos examples to CI --- .github/workflows/ubuntu2004-test.yml | 17 ++++ cmake/UtilTargets.cmake | 6 ++ cmake/scripts/test.sh | 145 +++++++++++++++++++++++++--------- 3 files changed, 130 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ubuntu2004-test.yml b/.github/workflows/ubuntu2004-test.yml index 81c8bb34..9dd2f131 100644 --- a/.github/workflows/ubuntu2004-test.yml +++ b/.github/workflows/ubuntu2004-test.yml @@ -124,3 +124,20 @@ jobs: . ~/.cargo/env && cd build && make run-cancel-test + sim-debug-libos-example: + runs-on: ubuntu-20.04 + container: teaclave/teaclave-build-ubuntu-2004-sgx-2.17.1:0.1.0 + steps: + - uses: actions/checkout@v3 + - name: Build + run: | + . cmake/scripts/build_in_ci.sh + - name: Run libos examples + run: | + export AS_SPID="00000000000000000000000000000000" && + export AS_KEY="00000000000000000000000000000000" && + export AS_ALGO="sgx_epid" && + export AS_URL="https://api.trustedservices.intel.com:443" && + . ~/.cargo/env && + cd build && + make run-libos-examples diff --git a/cmake/UtilTargets.cmake b/cmake/UtilTargets.cmake index 5c6cf1c1..fcff8b37 100644 --- a/cmake/UtilTargets.cmake +++ b/cmake/UtilTargets.cmake @@ -85,6 +85,12 @@ else() ) endif() +if(SGX_SIM_MODE) + add_custom_target( + run-libos-examples COMMAND ${TEACLAVE_COMMON_ENVS} + ${MT_SCRIPT_DIR}/test.sh libos) +endif() + add_custom_target(run-examples COMMAND ${TEACLAVE_COMMON_ENVS} ${MT_SCRIPT_DIR}/test.sh example) diff --git a/cmake/scripts/test.sh b/cmake/scripts/test.sh index b6550916..9e00221f 100755 --- a/cmake/scripts/test.sh +++ b/cmake/scripts/test.sh @@ -194,6 +194,64 @@ run_sdk_tests() { cleanup } +mesapy_examples() { + pushd ${TEACLAVE_PROJECT_ROOT}/examples/python + export PYTHONPATH=${TEACLAVE_PROJECT_ROOT}/sdk/python + python3 mesapy_echo.py + python3 mesapy_logistic_reg.py + python3 mesapy_optional_files.py + popd +} + +builtin_examples() { + pushd ${TEACLAVE_PROJECT_ROOT}/examples/python + export PYTHONPATH=${TEACLAVE_PROJECT_ROOT}/sdk/python + python3 builtin_echo.py + python3 builtin_gbdt_train.py + python3 builtin_online_decrypt.py + python3 builtin_private_join_and_compute.py + python3 builtin_ordered_set_intersect.py + python3 builtin_rsa_sign.py + python3 builtin_face_detection.py + python3 builtin_password_check.py + python3 test_disable_function.py + popd + + pushd ${TEACLAVE_PROJECT_ROOT}/examples/c + make run + popd + + pushd ${TEACLAVE_PROJECT_ROOT}/examples/rust + pushd ./builtin_echo + RUSTFLAGS=${RUSTFLAGS} cargo run + popd + pushd ./builtin_ordered_set_intersect + RUSTFLAGS=${RUSTFLAGS} cargo run + popd + popd +} + +wasm_examples() { + # Generate WASM file for WAMR Rust example + pushd ${TEACLAVE_PROJECT_ROOT}/examples/python/wasm_rust_psi_payload + make + popd + + rust_toolchain=${RUSTUP_TOOLCHAIN} + unset RUSTUP_TOOLCHAIN + pushd ${TEACLAVE_PROJECT_ROOT}/examples/python/wasm_tvm_mnist_payload + make + popd + export RUSTUP_TOOLCHAIN=${rust_toolchain} + + pushd ${TEACLAVE_PROJECT_ROOT}/examples/python + export PYTHONPATH=${TEACLAVE_PROJECT_ROOT}/sdk/python + python3 wasm_c_simple_add.py + python3 wasm_rust_psi.py + python3 wasm_tvm_mnist.py + popd +} + run_examples() { trap cleanup INT TERM ERR @@ -224,50 +282,57 @@ run_examples() { sleep 3 # wait for execution services popd - # Generate WASM file for WAMR Rust example - pushd ${TEACLAVE_PROJECT_ROOT}/examples/python/wasm_rust_psi_payload - make - popd + # run builtin examples + builtin_examples - rust_toolchain=${RUSTUP_TOOLCHAIN} - unset RUSTUP_TOOLCHAIN - pushd ${TEACLAVE_PROJECT_ROOT}/examples/python/wasm_tvm_mnist_payload - make - popd - export RUSTUP_TOOLCHAIN=${rust_toolchain} + # run mesapy examples + mesapy_examples - pushd ${TEACLAVE_PROJECT_ROOT}/examples/python - export PYTHONPATH=${TEACLAVE_PROJECT_ROOT}/sdk/python - python3 builtin_echo.py - python3 mesapy_echo.py - python3 mesapy_logistic_reg.py - python3 mesapy_optional_files.py - python3 builtin_gbdt_train.py - python3 builtin_online_decrypt.py - python3 builtin_private_join_and_compute.py - python3 builtin_ordered_set_intersect.py - python3 builtin_rsa_sign.py - python3 builtin_face_detection.py - python3 builtin_password_check.py - python3 wasm_c_simple_add.py - python3 wasm_rust_psi.py - python3 wasm_tvm_mnist.py - python3 test_disable_function.py - popd + # run wasm examples + wasm_examples - pushd ${TEACLAVE_PROJECT_ROOT}/examples/c - make run - popd + # kill all background services + cleanup +} - pushd ${TEACLAVE_PROJECT_ROOT}/examples/rust - pushd ./builtin_echo - RUSTFLAGS=${RUSTFLAGS} cargo run - popd - pushd ./builtin_ordered_set_intersect - RUSTFLAGS=${RUSTFLAGS} cargo run - popd +run_libos_examples() { + trap cleanup INT TERM ERR + + echo_title "libos examples" + if [ "${SGX_MODE}" = "HW" ]; then + echo "Executing LibOS's examples in SGX HW mode is not currently supported." + exit + fi + mkdir -p /tmp/fusion_data + + pushd ${TEACLAVE_SERVICE_INSTALL_DIR} + ./teaclave_authentication_service & + ./teaclave_storage_service & + wait_port 7776 17776 17778 # wait for authentication and storage service + ./teaclave_management_service & + ./teaclave_scheduler_service & + wait_port 17777 17780 # wait for management service and scheduler_service + ./teaclave_access_control_service & + ./teaclave_frontend_service & + wait_port 17779 7777 # wait for other services + + start_storage_server + + pushd ${TEACLAVE_BIN_INSTALL_DIR} + cp -rf ${TEACLAVE_SERVICE_INSTALL_DIR}/auditors . + cp -f ${TEACLAVE_SERVICE_INSTALL_DIR}/runtime.config.toml . + cp -f ${TEACLAVE_SERVICE_INSTALL_DIR}/enclave_info.toml . + # Run tests of libos service separately + ./teaclave_execution_service_libos & + sleep 3 # wait for execution services popd + # run builtin examples + builtin_examples + + # run wasm examples + wasm_examples + # kill all background services cleanup } @@ -356,6 +421,9 @@ case "$1" in "cancel") run_cancel_test ;; + "libos") + run_libos_examples + ;; *) run_unit_tests run_integration_tests @@ -363,5 +431,6 @@ case "$1" in run_sdk_tests run_examples run_cancel_test + run_libos_examples ;; esac --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
