diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 5730fc22..48f6ce94 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -63,7 +63,7 @@ jobs: - name: Build run: ANDROID_SDK=$HOME/.android/sdk make -j`nproc` all dist - name: Test Debug - run: out/debug/tildefriends test + run: TF_TEST_AUTO=0 out/debug/tildefriends test - name: Docker build run: DOCKER_BUILDKIT=1 docker build . - name: Upload artifacts diff --git a/src/tests.c b/src/tests.c index 49ceb7f7..f58980d2 100644 --- a/src/tests.c +++ b/src/tests.c @@ -934,20 +934,34 @@ static void _tf_test_run(const tf_test_options_t* options, const char* name, voi tf_free(dup); } - if ((!opt_in && !options->tests) || specified) - { #define GREEN "\e[1;32m" +#define GRAY "\e[1;90m" #define MAGENTA "\e[1;35m" #define CYAN "\e[1;36m" #define RESET "\e[0m" + size_t length = strlen("TF_TEST_") + strlen(name) + 1; + char* env_name = alloca(length); + snprintf(env_name, length, "TF_TEST_%s", name); + + char buffer[8] = { 0 }; + size_t buffer_size = sizeof(buffer); + bool exclude = uv_os_getenv(env_name, buffer, &buffer_size) == 0 && strcmp(buffer, "0") == 0; + if (exclude) + { + tf_printf("Test " GRAY "%s" RESET " disabled by %s.\n", name, env_name); + } + + if (((!opt_in && !options->tests) || specified) && !exclude) + { tf_printf(CYAN "== running test " MAGENTA "%s" CYAN " ==" RESET "\n", name); test(options); tf_printf("[" GREEN "pass" RESET "] %s\n", name); + } #undef GREEN +#undef GRAY #undef MAGENTA #undef CYAN #undef RESET - } } #endif