delta-verifier: Add verbose output option 64/286964/6
authorAntoni Adaszkiewicz <a.adaszkiewi@samsung.com>
Tue, 17 Jan 2023 13:37:03 +0000 (14:37 +0100)
committerAntoni Adaszkiewicz <a.adaszkiewi@samsung.com>
Tue, 24 Jan 2023 10:41:11 +0000 (11:41 +0100)
Change-Id: Ib2fcda4f773acd226acf9212cc5cdddccd354aed

delta-verifier/delta-verifier.c

index 9beddfad89402b0a93ba276552535134e775b7ab..bab4f6e15bc38b580473834813ac66ccda4d96d7 100644 (file)
@@ -32,19 +32,17 @@ static void print_usage(const char* msg)
        if (msg)
                printf("%s\n", msg);
 
-       printf("\n\tprint_usage: --update_info_path filepath\n"
+       printf("\n\tprint_usage: --update_info_path filepath [--verbose]\n"
        "\t\tfilepath -> filepath to update_info.ini file extracted from delta\n");
 }
 
-static int get_update_info_path(int argc, char** argv, char** dest)
+static int parse_args(int argc, char** argv, char** dest, bool* verbose_output)
 {
        *dest = NULL;
-       if (argc != 3) {
-               print_usage("Invalid parameter count");
-               return -1;
-       }
+
        const struct option long_options[] = {
                {"update_info_path", required_argument, NULL, 0},
+               {"verbose", no_argument, NULL, 1},
                {0}
        };
        while (1) {
@@ -64,6 +62,9 @@ static int get_update_info_path(int argc, char** argv, char** dest)
                                return -1;
                        }
                        break;
+               case 1:
+                       *verbose_output = true;
+                       break;
                default:
                        print_usage("Invalid parameters");
                        if (*dest)
@@ -291,7 +292,24 @@ static int compare_string_arrays(int device_size, char** device, int update_size
        return 0;
 }
 
-int compare_info_files(FILE* update_info_file, FILE* device_info_file)
+static void print_string_array(int size, char** array)
+{
+       for (int i = 0; i < size; i++)
+       {
+               printf("\t%s\n", array[i]);
+       }
+}
+
+static void print_string_arrays_verbose_mode(int device_size, char** device, int update_size, char** update)
+{
+       printf("Identification variables from delta:\n");
+       print_string_array(update_size, update);
+
+       printf("Identification variables generated from this device:\n");
+       print_string_array(device_size, device);
+}
+
+static int compare_info_files(FILE* update_info_file, FILE* device_info_file, bool verbose_output)
 {
        size_t update_info_size, device_info_size;
        update_info_size = get_file_size(update_info_file);
@@ -355,6 +373,9 @@ int compare_info_files(FILE* update_info_file, FILE* device_info_file)
                goto cleanup;
        }
 
+       if (verbose_output)
+               print_string_arrays_verbose_mode(device_file_lines, device_strings, update_file_lines, update_strings);
+
        if (compare_string_arrays(device_file_lines, device_strings, update_file_lines, update_strings) != 0) {
                ret = 1;
        }
@@ -373,7 +394,7 @@ cleanup:
        return ret;
 }
 
-int verify_delta_device_compatability(char* update_info_file_path)
+static int verify_delta_device_compatability(char* update_info_file_path, bool verbose_output)
 {
        int ret = 0;
        FILE* update_original = NULL, * tizen_build_conf = NULL, * device_info = NULL;
@@ -411,7 +432,7 @@ int verify_delta_device_compatability(char* update_info_file_path)
        }
 
        int comparison_result;
-       if ((comparison_result = compare_info_files(update_original, device_info)) < 0) {
+       if ((comparison_result = compare_info_files(update_original, device_info, verbose_output)) < 0) {
                ERR("compare_info_file()");
                ret = -1;
                goto cleanup;
@@ -441,12 +462,13 @@ cleanup:
 int main(int argc, char** argv)
 {
        char* update_info_path;
-       if (get_update_info_path(argc, argv, &update_info_path) < 0) {
+       bool verbose_output = false;
+       if (parse_args(argc, argv, &update_info_path, &verbose_output) < 0) {
                ERR("Parameter verification failed.");
                return -1;
        }
 
-       int ret = verify_delta_device_compatability(update_info_path);
+       int ret = verify_delta_device_compatability(update_info_path, verbose_output);
 
        free(update_info_path);
 
@@ -458,4 +480,4 @@ int main(int argc, char** argv)
                printf("Delta is not compatible with this device\n");
 
        return ret;
-}
\ No newline at end of file
+}