diff --git a/.travis.yml b/.travis.yml index 0d541e6..42e79a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,7 @@ matrix: node_js: - node - - name: "Linux Clang Default [64-bit] [DBG]" + - name: "Linux Clang Default [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=clang-9 && CXX=clang++-9" os: linux addons: @@ -28,7 +28,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL]" + - name: "Linux Clang Default [X64] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" os: linux addons: @@ -37,7 +37,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL] [Valgrind]" + - name: "Linux Clang Default [X64] [REL] [Valgrind]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" USE_VALGRIND=1 os: linux addons: @@ -46,7 +46,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9, valgrind] - - name: "Linux Clang Default [64-bit] [REL] [Sanitize=Address]" + - name: "Linux Clang Default [X64] [REL] [Sanitize=Address]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" EXTRA_OPTIONS="-DASMJIT_SANITIZE=address" os: linux addons: @@ -55,7 +55,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL] [Sanitize=Undefined]" + - name: "Linux Clang Default [X64] [REL] [Sanitize=Undefined]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" EXTRA_OPTIONS="-DASMJIT_SANITIZE=undefined" os: linux addons: @@ -64,7 +64,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL] [NoDeprecated]" + - name: "Linux Clang Default [X64] [REL] [NoDeprecated]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" EXTRA_OPTIONS="-DASMJIT_NO_DEPRECATED=1" os: linux addons: @@ -73,7 +73,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL] [NoIntrinsics]" + - name: "Linux Clang Default [X64] [REL] [NoIntrinsics]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" EXTRA_OPTIONS="-DASMJIT_NO_INTRINSICS=1" os: linux addons: @@ -82,7 +82,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL] [NoLogging]" + - name: "Linux Clang Default [X64] [REL] [NoLogging]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" EXTRA_OPTIONS="-DASMJIT_NO_LOGGING=1" os: linux addons: @@ -91,7 +91,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL] [NoBuilder]" + - name: "Linux Clang Default [X64] [REL] [NoBuilder]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" EXTRA_OPTIONS="-DASMJIT_NO_BUILDER=1" os: linux addons: @@ -100,7 +100,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux Clang Default [64-bit] [REL] [NoCompiler]" + - name: "Linux Clang Default [X64] [REL] [NoCompiler]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=clang-9 && CXX=clang++-9" EXTRA_OPTIONS="-DASMJIT_NO_COMPILER=1" os: linux addons: @@ -109,77 +109,77 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [clang++-9] - - name: "Linux GCC 4.8 [32-bit] [DBG]" + - name: "Linux GCC 4.8 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-4.8 && CXX=g++-4.8" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: apt: packages: [g++-4.8, g++-4.8-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 4.8 [64-bit] [DBG]" + - name: "Linux GCC 4.8 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-4.8 && CXX=g++-4.8" os: linux addons: apt: packages: [g++-4.8] - - name: "Linux GCC 5 [32-bit] [DBG]" + - name: "Linux GCC 5 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-5 && CXX=g++-5" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: apt: packages: [g++-5, g++-5-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 5 [64-bit] [DBG]" + - name: "Linux GCC 5 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-5 && CXX=g++-5" os: linux addons: apt: packages: [g++-5] - - name: "Linux GCC 6 [32-bit] [DBG]" + - name: "Linux GCC 6 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-6 && CXX=g++-6" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: apt: packages: [g++-6, g++-6-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 6 [64-bit] [DBG]" + - name: "Linux GCC 6 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-6 && CXX=g++-6" os: linux addons: apt: packages: [g++-6] - - name: "Linux GCC 7 [32-bit] [DBG]" + - name: "Linux GCC 7 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-7 && CXX=g++-7" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: apt: packages: [g++-7, g++-7-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 7 [64-bit] [DBG]" + - name: "Linux GCC 7 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-7 && CXX=g++-7" os: linux addons: apt: packages: [g++-7] - - name: "Linux GCC 8 [32-bit] [DBG]" + - name: "Linux GCC 8 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-8 && CXX=g++-8" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: apt: packages: [g++-8, g++-8-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 8 [64-bit] [DBG]" + - name: "Linux GCC 8 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-8 && CXX=g++-8" os: linux addons: apt: packages: [g++-8] - - name: "Linux GCC 9 [32-bit] [DBG]" + - name: "Linux GCC 9 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-9 && CXX=g++-9" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: @@ -188,7 +188,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [g++-9, g++-9-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 9 [64-bit] [DBG]" + - name: "Linux GCC 9 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-9 && CXX=g++-9" os: linux addons: @@ -197,7 +197,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [g++-9] - - name: "Linux GCC 10 [32-bit] [DBG]" + - name: "Linux GCC 10 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-10 && CXX=g++-10" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: @@ -206,7 +206,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [g++-10, g++-10-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 10 [32-bit] [REL]" + - name: "Linux GCC 10 [X86] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=gcc-10 && CXX=g++-10" CXXFLAGS=-m32 LDFLAGS=-m32 os: linux addons: @@ -215,7 +215,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [g++-10, g++-10-multilib, "linux-libc-dev:i386"] - - name: "Linux GCC 10 [64-bit] [DBG]" + - name: "Linux GCC 10 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug && CC=gcc-10 && CXX=g++-10" os: linux addons: @@ -224,7 +224,7 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [g++-10] - - name: "Linux GCC 10 [64-bit] [REL]" + - name: "Linux GCC 10 [X64] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release && CC=gcc-10 && CXX=g++-10" os: linux addons: @@ -233,59 +233,69 @@ matrix: - sourceline: "ppa:ubuntu-toolchain-r/test" packages: [g++-10] - - name: "OSX Clang XCode 9.4 [32-bit] [DBG]" + - name: "Linux GCC Default [ARM64] [DBG]" + env: BUILD_MATRIX="BUILD_TYPE=Debug" + os: linux + arch: arm64 + + - name: "Linux GCC Default [ARM64] [REL]" + env: BUILD_MATRIX="BUILD_TYPE=Release" + os: linux + arch: arm64 + + - name: "OSX Clang XCode 9.4 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug" CXXFLAGS=-m32 LDFLAGS=-m32 os: osx osx_image: xcode9.4 - - name: "OSX Clang XCode 9.4 [32-bit] [REL]" + - name: "OSX Clang XCode 9.4 [X86] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release" CXXFLAGS=-m32 LDFLAGS=-m32 os: osx osx_image: xcode9.4 - - name: "OSX Clang XCode 9.4 [64-bit] [DBG]" + - name: "OSX Clang XCode 9.4 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug" os: osx osx_image: xcode9.4 - - name: "OSX Clang XCode 9.4 [64-bit] [REL]" + - name: "OSX Clang XCode 9.4 [X64] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release" os: osx osx_image: xcode9.4 - - name: "OSX Clang XCode 10.2 [64-bit] [DBG]" + - name: "OSX Clang XCode 10.2 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug" os: osx osx_image: xcode10.2 - - name: "OSX Clang XCode 10.2 [64-bit] [REL]" + - name: "OSX Clang XCode 10.2 [X64] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release" os: osx osx_image: xcode10.2 - - name: "OSX Clang XCode 11 [64-bit] [DBG]" + - name: "OSX Clang XCode 11 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug" os: osx osx_image: xcode11 - - name: "OSX Clang XCode 11 [64-bit] [REL]" + - name: "OSX Clang XCode 11 [X64] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release" os: osx osx_image: xcode11 - - name: "Windows VS2017 [32-bit] [DBG]" + - name: "Windows VS2017 [X86] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug" BUILD_TOOLCHAIN="Visual Studio 15 2017" os: windows - - name: "Windows VS2017 [32-bit] [REL]" + - name: "Windows VS2017 [X86] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release" BUILD_TOOLCHAIN="Visual Studio 15 2017" os: windows - - name: "Windows VS2017 [64-bit] [DBG]" + - name: "Windows VS2017 [X64] [DBG]" env: BUILD_MATRIX="BUILD_TYPE=Debug" BUILD_TOOLCHAIN="Visual Studio 15 2017 Win64" os: windows - - name: "Windows VS2017 [64-bit] [REL]" + - name: "Windows VS2017 [X64] [REL]" env: BUILD_MATRIX="BUILD_TYPE=Release" BUILD_TOOLCHAIN="Visual Studio 15 2017 Win64" os: windows @@ -308,6 +318,7 @@ before_script: script: - | if [ -z $SOURCE_CODE_CHECK ]; then + ROOT_DIR=`pwd` cd build if [[ "$BUILD_TOOLCHAIN" =~ ^Visual\ Studio ]]; then cmake --build . --config ${BUILD_TYPE} -- -nologo -v:minimal || exit 1 @@ -315,27 +326,7 @@ script: else cmake --build . || exit 1 fi - echo "" - echo "=== Starting Tests ===" - echo "" - if [ "$USE_VALGRIND" = "1" ]; then - RUN_CMD="valgrind --leak-check=full --show-reachable=yes --track-origins=yes" - fi - eval "$RUN_CMD ./asmjit_test_unit --quick" || exit 1 - echo "" - eval "$RUN_CMD ./asmjit_test_opcode > /dev/null" || exit 1 - echo "" - eval "$RUN_CMD ./asmjit_test_x86_asm" || exit 1 - echo "" - eval "$RUN_CMD ./asmjit_test_x86_sections" || exit 1 - if [ -f ./asmjit_test_x86_instinfo ]; then - echo "" - eval "$RUN_CMD ./asmjit_test_x86_instinfo" || exit 1 - fi - if [ -f ./asmjit_test_x86_cc ]; then - echo "" - eval "$RUN_CMD ./asmjit_test_x86_cc" || exit 1 - fi + ${ROOT_DIR}/tools/ci-run.sh . || exit 1 else cd tools ./enumgen.sh --verify || exit 1 diff --git a/src/asmjit/core.h b/src/asmjit/core.h index d0fb214..530ae90 100644 --- a/src/asmjit/core.h +++ b/src/asmjit/core.h @@ -239,7 +239,7 @@ namespace asmjit { //! //! - \ref ASMJIT_BUILD_X86 - Always build X86 backend (X86 and X86_64). //! - \ref ASMJIT_BUILD_ARM - Always build ARM backend (ARM and AArch64). -//! - \ref ASMJIT_BUILD_HOST - Always build the host backend, implied by default. +//! - \ref ASMJIT_BUILD_HOST - Always build the host backend. //! //! ### Features Selection //! @@ -252,6 +252,9 @@ namespace asmjit { //! attempt to use such API. This includes deprecated classes, namespaces, //! enumerations, and functions. //! +//! - \ref ASMJIT_NO_FOREIGN - Disables the support for foreign architectures. +//! If defined, it would internally set \ref ASMJIT_BUILD_HOST to true. +//! //! - \ref ASMJIT_NO_BUILDER - Disables \ref asmjit_builder functionality //! completely. This implies \ref ASMJIT_NO_COMPILER as \ref asmjit_compiler //! cannot be used without \ref asmjit_builder. diff --git a/src/asmjit/core/api-config.h b/src/asmjit/core/api-config.h index 1388da4..3b896e9 100644 --- a/src/asmjit/core/api-config.h +++ b/src/asmjit/core/api-config.h @@ -77,6 +77,9 @@ namespace asmjit { //! Disables deprecated API at compile time. #define ASMJIT_NO_DEPRECATED +//! Disable non-host architectures entirely. +#define ASMJIT_NO_FOREIGN + //! Disables \ref asmjit_builder functionality completely. #define ASMJIT_NO_BUILDER @@ -188,7 +191,7 @@ namespace asmjit { #endif // ============================================================================ -// [asmjit::Build - Globals - Target Architecture] +// [asmjit::Build - Globals - Target Architecture Information] // ============================================================================ #if defined(_M_X64) || defined(__x86_64__) @@ -235,27 +238,40 @@ namespace asmjit { #define ASMJIT_ARCH_BE 0 #endif -// Build host architecture if no architecture is selected. -#if !defined(ASMJIT_BUILD_HOST) && \ - !defined(ASMJIT_BUILD_X86) && \ - !defined(ASMJIT_BUILD_ARM) +// ============================================================================ +// [asmjit::Build - Globals - Build Architectures Definitions] +// ============================================================================ + +#if !defined(ASMJIT_NO_FOREIGN) + // If 'ASMJIT_NO_FOREIGN' is not defined then all architectures will be built. + #if !defined(ASMJIT_BUILD_X86) + #define ASMJIT_BUILD_X86 + #endif +#else + // Detect architectures to build if building only for the host architecture. + #if ASMJIT_ARCH_X86 && !defined(ASMJIT_BUILD_X86) + #define ASMJIT_BUILD_X86 + #endif + + #if ASMJIT_ARCH_ARM && !defined(ASMJIT_BUILD_ARM) + // #define ASMJIT_BUILD_ARM + #endif +#endif + +// Define 'ASMJIT_BUILD_HOST' if we know that host architecture will be built. +#if !defined(ASMJIT_BUILD_HOST) && ASMJIT_ARCH_X86 && defined(ASMJIT_BUILD_X86) #define ASMJIT_BUILD_HOST #endif -// Detect host architecture if building only for host. -#if ASMJIT_ARCH_X86 && defined(ASMJIT_BUILD_HOST) && !defined(ASMJIT_BUILD_X86) - #define ASMJIT_BUILD_X86 -#endif - -#if ASMJIT_ARCH_ARM && defined(ASMJIT_BUILD_HOST) && !defined(ASMJIT_BUILD_ARM) - #define ASMJIT_BUILD_ARM +#if !defined(ASMJIT_BUILD_HOST) && ASMJIT_ARCH_ARM && defined(ASMJIT_BUILD_ARM) + #define ASMJIT_BUILD_HOST #endif // ============================================================================ // [asmjit::Build - Globals - C++ Compiler and Features Detection] // ============================================================================ -#define ASMJIT_CXX_GNU 0 +#define ASMJIT_CXX_GNU 0 #define ASMJIT_CXX_MAKE_VER(MAJOR, MINOR) ((MAJOR) * 1000 + (MINOR)) // Intel Compiler [pretends to be GNU or MSC, so it must be checked first]: diff --git a/test/asmjit_bench_x86.cpp b/test/asmjit_bench_x86.cpp index 40d9008..590419c 100644 --- a/test/asmjit_bench_x86.cpp +++ b/test/asmjit_bench_x86.cpp @@ -21,7 +21,12 @@ // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. +#include + +#ifdef ASMJIT_BUILD_X86 #include +#endif + #include #include diff --git a/test/asmjit_test_x86_asm.cpp b/test/asmjit_test_x86_asm.cpp index ba85100..5000c1e 100644 --- a/test/asmjit_test_x86_asm.cpp +++ b/test/asmjit_test_x86_asm.cpp @@ -21,7 +21,11 @@ // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. +#include + +#if defined(ASMJIT_BUILD_X86) && ASMJIT_ARCH_X86 #include + #include #include #include @@ -196,3 +200,9 @@ int main() { return nFailed ? 1 : 0; } +#else +int main() { + printf("AsmJit X86 Emitter Test is disabled on non-x86 host\n\n"); + return 0; +} +#endif diff --git a/test/asmjit_test_x86_cc.cpp b/test/asmjit_test_x86_cc.cpp index 9e80d87..b3f7e53 100644 --- a/test/asmjit_test_x86_cc.cpp +++ b/test/asmjit_test_x86_cc.cpp @@ -21,6 +21,9 @@ // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. +#include +#if defined(ASMJIT_BUILD_X86) && ASMJIT_ARCH_X86 + #include #include #include @@ -4327,3 +4330,13 @@ int main(int argc, char* argv[]) { return app.run(); } + +#else +int main() { + printf("AsmJit Compiler Test-Suite v%u.%u.%u is disabled on non-x86 host:\n", + unsigned((ASMJIT_LIBRARY_VERSION >> 16) ), + unsigned((ASMJIT_LIBRARY_VERSION >> 8) & 0xFF), + unsigned((ASMJIT_LIBRARY_VERSION ) & 0xFF)); + return 0; +} +#endif diff --git a/test/asmjit_test_x86_instinfo.cpp b/test/asmjit_test_x86_instinfo.cpp index 1d7d500..9b0d57d 100644 --- a/test/asmjit_test_x86_instinfo.cpp +++ b/test/asmjit_test_x86_instinfo.cpp @@ -21,7 +21,12 @@ // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. +#include + +#if defined(ASMJIT_BUILD_X86) #include +#endif + #include using namespace asmjit; @@ -90,12 +95,10 @@ static void printInfoSimple(uint32_t arch, uint32_t instId, Args&&... args) { printInfo(arch, inst, opArray, sizeof...(args)); } -int main() { - using namespace x86; +static void testX86Arch() { +#if defined(ASMJIT_BUILD_X86) uint32_t arch = Environment::kArchX64; - printf("AsmJit X86 Instruction Information Test\n\n"); - printInfoSimple(arch, x86::Inst::kIdAdd, x86::eax, x86::ebx); @@ -110,7 +113,7 @@ int main() { printInfoSimple(arch, x86::Inst::kIdPextrw, - x86::ptr(rax), x86::xmm1, imm(0)); + x86::ptr(x86::rax), x86::xmm1, imm(0)); printInfoSimple(arch, x86::Inst::kIdVaddpd, @@ -123,6 +126,13 @@ int main() { printInfoSimple(arch, x86::Inst::kIdVaddpd, x86::zmm0, x86::zmm1, x86::zmm2); +#endif +} + +int main() { + printf("AsmJit Instruction Information Test\n\n"); + + testX86Arch(); return 0; } diff --git a/test/asmjit_test_x86_sections.cpp b/test/asmjit_test_x86_sections.cpp index ddafd63..de81fca 100644 --- a/test/asmjit_test_x86_sections.cpp +++ b/test/asmjit_test_x86_sections.cpp @@ -34,6 +34,9 @@ // - Copy the code to the destination address. // ---------------------------------------------------------------------------- +#include +#if defined(ASMJIT_BUILD_X86) && ASMJIT_ARCH_X86 + #include #include #include @@ -173,3 +176,10 @@ int main() { printf("Success:\n The generated function returned expected results\n"); return 0; } + +#else +int main() { + printf("AsmJit X86 Sections Test is disabled on non-x86 host\n\n"); + return 0; +} +#endif diff --git a/tools/ci-run.sh b/tools/ci-run.sh new file mode 100755 index 0000000..15e4245 --- /dev/null +++ b/tools/ci-run.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env sh + +set -e + +BUILD_DIR=$1 + +if [ "$USE_VALGRIND" = "1" ]; then + RUN_CMD="valgrind --leak-check=full --show-reachable=yes --track-origins=yes" +fi + +echo "" +echo "=== Starting Tests ===" + +echo "" +eval "$RUN_CMD ${BUILD_DIR}/asmjit_test_unit --quick" + +echo "" +echo "AsmJit Opcode Test" +eval "$RUN_CMD ${BUILD_DIR}/asmjit_test_opcode > /dev/null" + +if [ -f ${BUILD_DIR}/asmjit_test_x86_asm ]; then + echo "" + eval "$RUN_CMD ${BUILD_DIR}/asmjit_test_x86_asm" +fi + +if [ -f ${BUILD_DIR}/asmjit_test_x86_sections ]; then + echo "" + eval "$RUN_CMD ${BUILD_DIR}/asmjit_test_x86_sections" +fi + +if [ -f ${BUILD_DIR}/asmjit_test_x86_instinfo ]; then + echo "" + eval "$RUN_CMD ${BUILD_DIR}/asmjit_test_x86_instinfo" +fi + +if [ -f ${BUILD_DIR}asmjit_test_x86_cc ]; then + echo "" + eval "$RUN_CMD ${BUILD_DIR}/asmjit_test_x86_cc" +fi