@@ -621,6 +621,49 @@ jobs:
621621 llvm_cache_key : ${{ needs.build_llvm_libraries_on_ubuntu_2204.outputs.cache_key }}
622622 running_mode : aot
623623 test_option : $WAMR_COMPILER_TEST_OPTIONS
624+ exclude :
625+ # incompatible modes and features
626+ # classic-interp doesn't support simd
627+ - running_mode : " classic-interp"
628+ test_option : $SIMD_TEST_OPTIONS
629+ # llvm jit doesn't support multi module
630+ - running_mode : " jit"
631+ test_option : $MULTI_MODULES_TEST_OPTIONS
632+ # fast-jit doesn't support multi module, simd
633+ - running_mode : " fast-jit"
634+ test_option : $MULTI_MODULES_TEST_OPTIONS
635+ - running_mode : " fast-jit"
636+ test_option : $SIMD_TEST_OPTIONS
637+ # multi-tier-jit doesn't support multi module, simd
638+ - running_mode : " multi-tier-jit"
639+ test_option : $MULTI_MODULES_TEST_OPTIONS
640+ - running_mode : " multi-tier-jit"
641+ test_option : $SIMD_TEST_OPTIONS
642+ # fast-jit and multi-tier-jit don't support GC
643+ - running_mode : " fast-jit"
644+ test_option : $GC_TEST_OPTIONS
645+ - running_mode : " multi-tier-jit"
646+ test_option : $GC_TEST_OPTIONS
647+ # fast-interp, fast-jit, llvm-jit, multi-tier-jit don't support Memory64
648+ - running_mode : " fast-interp"
649+ test_option : $MEMORY64_TEST_OPTIONS
650+ - running_mode : " fast-jit"
651+ test_option : $MEMORY64_TEST_OPTIONS
652+ - running_mode : " jit"
653+ test_option : $MEMORY64_TEST_OPTIONS
654+ - running_mode : " multi-tier-jit"
655+ test_option : $MEMORY64_TEST_OPTIONS
656+ # aot, fast-interp, fast-jit, llvm-jit, multi-tier-jit don't support Multi Memory
657+ - running_mode : " aot"
658+ test_option : $MULTI_MEMORY_TEST_OPTIONS
659+ - running_mode : " fast-interp"
660+ test_option : $MULTI_MEMORY_TEST_OPTIONS
661+ - running_mode : " fast-jit"
662+ test_option : $MULTI_MEMORY_TEST_OPTIONS
663+ - running_mode : " jit"
664+ test_option : $MULTI_MEMORY_TEST_OPTIONS
665+ - running_mode : " multi-tier-jit"
666+ test_option : $MULTI_MEMORY_TEST_OPTIONS
624667
625668 steps :
626669 - name : checkout
@@ -724,3 +767,123 @@ jobs:
724767 eval $(opam env)
725768 ./test_wamr.sh ${{ env.X86_32_TARGET_TEST_OPTIONS }} ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
726769 working-directory : ./tests/wamr-test-suites
770+
771+ test-wamr-ide :
772+ needs :
773+ [
774+ build_iwasm
775+ ]
776+ runs-on : ubuntu-22.04
777+ env :
778+ PYTHON_VERSION : ' 3.10'
779+ PYTHON_UBUNTU_STANDALONE_BUILD : https://github.com/indygreg/python-build-standalone/releases/download/20230507/cpython-3.10.11+20230507-x86_64-unknown-linux-gnu-install_only.tar.gz
780+
781+ steps :
782+ - name : checkout
783+ uses : actions/checkout@v4
784+
785+ - name : install dependencies
786+ run : |
787+ rustup target add wasm32-wasip1
788+ sudo apt update && sudo apt-get install -y lld ninja-build
789+ npm install
790+ working-directory : test-tools/wamr-ide/VSCode-Extension
791+
792+ - name : code style check
793+ run : |
794+ npm install --save-dev prettier
795+ npm run prettier-format-check
796+ working-directory : test-tools/wamr-ide/VSCode-Extension
797+
798+ - name : build iwasm with source debugging feature
799+ run : |
800+ mkdir build
801+ cd build
802+ cmake .. -DWAMR_BUILD_DEBUG_INTERP=1 -DWAMR_BUILD_REF_TYPES=1
803+ make
804+ working-directory : product-mini/platforms/linux
805+
806+ - name : Cache LLDB
807+ id : cache-lldb
808+ uses : actions/cache@v4
809+ env :
810+ cache-name : cache-lldb-vscode
811+ with :
812+ path : test-tools/wamr-ide/VSCode-Extension/resource/debug/linux
813+ key : ${{ env.cache-name }}-${{ hashFiles('build-scripts/lldb_wasm.patch') }}-${{ env.PYTHON_UBUNTU_STANDALONE_BUILD }}
814+
815+ - if : ${{ steps.cache-lldb.outputs.cache-hit != 'true' }}
816+ name : get stand-alone python ubuntu
817+ run : |
818+ wget ${{ env.PYTHON_UBUNTU_STANDALONE_BUILD }} -O python.tar.gz
819+ tar -xvf python.tar.gz
820+ working-directory : core/deps
821+
822+ - if : ${{ steps.cache-lldb.outputs.cache-hit != 'true' }}
823+ name : download llvm
824+ run : |
825+ wget https://github.com/llvm/llvm-project/archive/1f27fe6128769f00197925c3b8f6abb9d0e5cd2e.zip
826+ unzip -q 1f27fe6128769f00197925c3b8f6abb9d0e5cd2e.zip
827+ mv llvm-project-1f27fe6128769f00197925c3b8f6abb9d0e5cd2e llvm-project
828+ working-directory : core/deps
829+
830+ - if : ${{ steps.cache-lldb.outputs.cache-hit != 'true' }}
831+ name : apply wamr patch
832+ run : |
833+ git init
834+ git config user.email "action@github.com"
835+ git config user.name "github action"
836+ git apply ../../../build-scripts/lldb_wasm.patch
837+ working-directory : core/deps/llvm-project
838+
839+ - if : ${{ steps.cache-lldb.outputs.cache-hit != 'true' }}
840+ name : build lldb ubuntu
841+ run : |
842+ echo "start to build lldb..."
843+ mkdir -p wamr-lldb
844+ cmake -S ./llvm -B build \
845+ -G Ninja \
846+ -DCMAKE_INSTALL_PREFIX=../wamr-lldb \
847+ -DCMAKE_BUILD_TYPE:STRING="Release" \
848+ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
849+ -DLLVM_ENABLE_PROJECTS="clang;lldb" \
850+ -DLLVM_TARGETS_TO_BUILD:STRING="X86;WebAssembly" \
851+ -DLLVM_BUILD_BENCHMARKS:BOOL=OFF \
852+ -DLLVM_BUILD_DOCS:BOOL=OFF \
853+ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \
854+ -DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \
855+ -DLLVM_BUILD_TESTS:BOOL=OFF \
856+ -DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF \
857+ -DLLVM_INCLUDE_DOCS:BOOL=OFF \
858+ -DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \
859+ -DLLVM_INCLUDE_TESTS:BOOL=OFF \
860+ -DLLVM_ENABLE_BINDINGS:BOOL=OFF \
861+ -DLLVM_ENABLE_LIBXML2:BOOL=ON \
862+ -DLLVM_ENABLE_LLD:BOOL=ON \
863+ -DLLDB_ENABLE_PYTHON:BOOL=ON \
864+ -DLLDB_EMBED_PYTHON_HOME=ON \
865+ -DLLDB_PYTHON_HOME=.. \
866+ -DLLDB_PYTHON_RELATIVE_PATH=lib/lldb-python \
867+ -DPython3_EXECUTABLE="$(pwd)/../python/bin/python${{ env.PYTHON_VERSION }}"
868+ cmake --build build --target lldb install --parallel $(nproc)
869+ working-directory : core/deps/llvm-project
870+
871+ - if : ${{ steps.cache-lldb.outputs.cache-hit != 'true' }}
872+ name : copy lldb to extension folder
873+ run : |
874+ mkdir -p bin
875+ mkdir -p lib
876+ cp ../../../../../../core/deps/llvm-project/lldb/tools/lldb-vscode/package.json ./
877+ cp -r ../../../../../../core/deps/llvm-project/lldb/tools/lldb-vscode/syntaxes/ ./
878+ cp ../../../../../../core/deps/llvm-project/build/bin/lldb* bin
879+ cp ../../../../../../core/deps/llvm-project/build/lib/liblldb*.so lib
880+ cp ../../../../../../core/deps/llvm-project/build/lib/liblldb*.so.* lib
881+ cp -R ../../../../../../core/deps/llvm-project/build/lib/lldb-python lib
882+ cp -R ../../../../../../core/deps/python/lib/python* lib
883+ cp ../../../../../../core/deps/python/lib/libpython${{ env.PYTHON_VERSION }}.so.1.0 lib
884+ working-directory : test-tools/wamr-ide/VSCode-Extension/resource/debug/linux
885+
886+ - name : run tests
887+ timeout-minutes : 5
888+ run : xvfb-run npm run test
889+ working-directory : test-tools/wamr-ide/VSCode-Extension
0 commit comments