test: Add skip test functionality 59/236959/7 accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.121328 accepted/tizen/6.0/unified/hotfix/20201103.003528 accepted/tizen/6.0/unified/hotfix/20201103.050258 accepted/tizen/unified/20200812.143924 submit/tizen/20200811.122142 submit/tizen_6.0/20201029.205102 submit/tizen_6.0_hotfix/20201102.192502 submit/tizen_6.0_hotfix/20201103.114802 tizen_6.0.m2_release
authorWiktor Gerstenstein <w.gerstenste@partner.samsung.com>
Thu, 25 Jun 2020 12:29:00 +0000 (14:29 +0200)
committerWiktor Gerstenstein <w.gerstenste@partner.samsung.com>
Fri, 26 Jun 2020 08:20:24 +0000 (10:20 +0200)
- add static array with function names to skip

Change-Id: Ic8aaa0728a43936cd4c6e1ed590e01ba8f0fbf5c

test/peripheral-io-test.c

index 9af0367..2f35859 100644 (file)
@@ -17,6 +17,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <system_info.h>
 
 #include "peripheral_io.h"
 #define KEY_FEATURE_PERIPHERAL_IO_UART "http://tizen.org/feature/peripheral_io.uart"
 #define KEY_FEATURE_PERIPHERAL_IO_SPI  "http://tizen.org/feature/peripheral_io.spi"
 
+#define CRED  "\x1B[31m"
+#define CGRN  "\x1B[32m"
+#define CYEL  "\x1B[33m"
+#define RESET "\033[0m"
+
 static int fail_count = 0;
 static int pass_count = 0;
+static int skip_count = 0;
 
-static void __error_check(int ret, char *name)
+char *model_name = NULL;
+
+typedef struct
 {
-       if (ret != PERIPHERAL_ERROR_NONE) {
-               printf("[FAIL] %s\n", name);
-               fail_count++;
-       } else {
-               printf("[PASS] %s\n", name);
-               pass_count++;
-       }
-}
+       const char *test_name, *model_name;
+} skip_test_t;
+
+static skip_test_t skip_test_list[] = {
+       {"test_peripheral_io_spi_peripheral_spi_set_bit_order_p2", "rpi3"}
+};
 
 static int __get_model_name(char **model_name)
 {
@@ -71,35 +78,56 @@ static int __get_feature(const char *key, bool *feature)
        return PERIPHERAL_ERROR_NONE;
 }
 
+static bool __skip_check(char *name)
+{
+       size_t n = sizeof(skip_test_list) / sizeof(skip_test_list[0]);
+       for (int i = 0; i < n; ++i)
+               if (!strcmp(skip_test_list[i].model_name, model_name) && !strcmp(skip_test_list[i].test_name, name))
+                       return true;
+       return false;
+}
+
+static void __error_check(int ret, char *name)
+{
+       if (__skip_check(name)) {
+               printf(CYEL "[SKIP]" RESET " %s\n", name);
+               skip_count++;
+       } else if (ret != PERIPHERAL_ERROR_NONE) {
+               printf(CRED "[FAIL]" RESET " %s\n", name);
+               fail_count++;
+       } else {
+               printf(CGRN "[PASS]" RESET " %s\n", name);
+               pass_count++;
+       }
+}
+
 static int __test_peripheral_init(const char *test_name, const char *key_feature, int (*init_fn)(char *, bool))
 {
-       char *model_name = NULL;
        bool feature = false;
        int ret;
 
        printf("\n[Message] Initializing %s test\n", test_name);
 
-       ret = __get_model_name(&model_name);
-       if (ret != PERIPHERAL_ERROR_NONE) {
-               printf("[Message] Failed to get model name: %d\n", ret);
-               return ret;
+       if (!model_name) {
+               ret = __get_model_name(&model_name);
+               if (ret != PERIPHERAL_ERROR_NONE) {
+                       printf("[Message] Failed to get model name: %d\n", ret);
+                       return ret;
+               }
        }
 
        ret = __get_feature(key_feature, &feature);
        if (ret != PERIPHERAL_ERROR_NONE) {
-               free(model_name);
                printf("[Message] Feature %s not supported\n", key_feature);
                return ret;
        }
 
        ret = init_fn(model_name, feature);
        if (ret != PERIPHERAL_ERROR_NONE) {
-               free(model_name);
                printf("[Message] Failed to initialize %s test: %d\n", test_name, ret);
                return ret;
        }
 
-       free(model_name);
        return PERIPHERAL_ERROR_NONE;
 }
 
@@ -527,6 +555,7 @@ int main(int argc, char **argv)
 
                fail_count = 0;
                pass_count = 0;
+               skip_count = 0;
 
                switch (menu) {
                case 1:
@@ -563,9 +592,11 @@ int main(int argc, char **argv)
                        return -1;
                }
 
-               printf("\n\nTotal : %d, Pass : %d, Fail : %d\n", pass_count + fail_count, pass_count, fail_count);
+               printf("\n\nTotal : %d, Pass : %d, Fail : %d, Skip : %d\n", pass_count + fail_count + skip_count, pass_count, fail_count, skip_count);
 
        }
 
+       free(model_name);
+
        return -1;
 }