halcc: Fix not to use min-max semantic for minor versioning 18/311018/3
authorYoungjae Cho <y0.cho@samsung.com>
Thu, 2 May 2024 03:10:41 +0000 (12:10 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Mon, 13 May 2024 05:49:58 +0000 (14:49 +0900)
Removed use of version format of MAJOR.MIN_MINOR-MAX_MINOR. It has
changed to have only form of MAJOR.MINOR.

Change-Id: I3fa0e0220a97f7a5dcb2c817b291a4fbd96fb5fa
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
src/hal-api-compatibility-checker-object.c
src/hal-api-compatibility-checker-object.h
src/hal-api-compatibility-checker-parser.c
src/hal-api-compatibility-checker.c
tests/unittest/test-hal-compatibility-checker.cc

index 57f0754c8dcb2cdec7e9704bdab49b27b23a7e75..9715c4496696d6be4e3ab26b41dc9570d22686d6 100644 (file)
 
 typedef struct halcc_version {
        int major;
-       union {
-               /**
-                * Can be used interchangeably.
-                * min_minor might be useful if max_minor is specified.
-                */
-               int minor;
-               int min_minor;
-       };
-       int max_minor;
+       int minor;
 } halcc_version;
 
 typedef struct halcc_interface {
@@ -655,7 +647,7 @@ __validate_hal_dependency_state(halcc_manifest *manifest, halcc_hal *hal)
                int ret;
 
                halcc_hal_get_name(dependency, &dependency_hal_name);
-               halcc_hal_get_version(dependency, &dependency_hal_major, &dependency_hal_minor, NULL);
+               halcc_hal_get_version(dependency, &dependency_hal_major, &dependency_hal_minor);
 
                ret = halcc_manifest_find_hal_forward_compatible(manifest,
                        dependency_hal_name, dependency_hal_major, dependency_hal_minor,
@@ -861,7 +853,7 @@ int halcc_hal_get_name(halcc_hal *hal, const char **hal_name)
        return 0;
 }
 
-int halcc_hal_set_version(halcc_hal *hal, int major, int min_minor, int max_minor)
+int halcc_hal_set_version(halcc_hal *hal, int major, int minor)
 {
        if (!hal) {
                printf("Invalid parameter\n");
@@ -869,23 +861,20 @@ int halcc_hal_set_version(halcc_hal *hal, int major, int min_minor, int max_mino
        }
 
        hal->version.major = major;
-       hal->version.min_minor = min_minor;
-       hal->version.max_minor = max_minor;
+       hal->version.minor = minor;
 
        return 0;
 }
 
-int halcc_hal_get_version(halcc_hal *hal, int *major, int *min_minor, int *max_minor)
+int halcc_hal_get_version(halcc_hal *hal, int *major, int *minor)
 {
-       if (!hal || !major || !min_minor) {
+       if (!hal || !major || !minor) {
                printf("Invalid parameter\n");
                return -EINVAL;
        }
 
        *major = hal->version.major;
-       *min_minor = hal->version.min_minor;
-       if (max_minor)
-               *max_minor = hal->version.max_minor;
+       *minor = hal->version.minor;
 
        return 0;
 }
index c18fa9cd6a5820c1a0b36779d821807b1d7f971f..c5d22adae3457b35e4de4ae1496c559daab85c40 100644 (file)
@@ -84,8 +84,8 @@ int halcc_hal_new(halcc_hal **hal);
 void halcc_hal_free(halcc_hal *hal);
 int halcc_hal_set_name(halcc_hal *hal, const char *hal_name);
 int halcc_hal_get_name(halcc_hal *hal, const char **hal_name);
-int halcc_hal_set_version(halcc_hal *hal, int major, int min_minor, int max_minor);
-int halcc_hal_get_version(halcc_hal *hal, int *major, int *min_minor, int *max_minor);
+int halcc_hal_set_version(halcc_hal *hal, int major, int minor);
+int halcc_hal_get_version(halcc_hal *hal, int *major, int *minor);
 int halcc_hal_set_transport(halcc_hal *hal, halcc_transport_e transport);
 int halcc_hal_get_transport(halcc_hal *hal, halcc_transport_e *transport);
 int halcc_hal_add_dependency(halcc_hal *hal, halcc_hal *dependency);
index 4146191c88a5272e7a427f0752bcf8da327d5bea..50f1a4cd4f9baa4a77b2193c1c726815ba0d23f5 100644 (file)
@@ -78,24 +78,17 @@ static int parse_hal(xmlNode *node, halcc_hal *hal)
                        if (ret != 0)
                                printf("Failed to halcc_hal_set_name(), name=%s, ret=%d\n", name, ret);
                } else if (xmlStrEqual(child->name, "version")) {
-                       int major, min_minor, max_minor;
+                       int major, minor;
                        int scanned;
                        __xmlchar__ xmlChar *version = xmlNodeGetContent(child);
 
-                       scanned = sscanf(version, "%d.%d-%d", &major, &min_minor, &max_minor);
-                       switch (scanned) {
-                               case 2: // 3.5 is equal to 3.5-5
-                                       max_minor = min_minor;
-                                       ret = halcc_hal_set_version(hal, major, min_minor, max_minor);
-                                       break;
-                               case 3: // 3.5-8
-                                       ret = halcc_hal_set_version(hal, major, min_minor, max_minor);
-                                       break;
-                               default:
-                                       ret = -EINVAL;
-                                       break;
+                       scanned = sscanf(version, "%d.%d", &major, &minor);
+                       if (scanned != 2) {
+                               printf("Invalid version format %s\n", version);
+                               continue;
                        }
 
+                       ret = halcc_hal_set_version(hal, major, minor);
                        if (ret != 0)
                                printf("Failed to halcc_hal_set_version(), ret=%d\n", ret);
                } else if (xmlStrEqual(child->name, "transport")) {
@@ -247,7 +240,7 @@ static int parse_manifest(xmlNode *node, halcc_manifest *manifest)
                }
 
                halcc_hal_get_name(h, &hal_name);
-               halcc_hal_get_version(h, &hal_major, &hal_minor, NULL);
+               halcc_hal_get_version(h, &hal_major, &hal_minor);
 
                if (halcc_manifest_find_hal(manifest, hal_name, hal_major, hal_minor, NULL) == 0) {
                        halcc_hal_free(h);
index 349601742f048726eff282b5f0dee9a17fd4bb50..4a618f68a23fa2dd76ed401cfd45323eb307aae3 100644 (file)
@@ -201,7 +201,7 @@ static void make_compatibility_manifest_info(void *data, void *user_data)
         * }
         */
 
-       if (halcc_hal_get_version(hal, &manifest_major, &manifest_minor, NULL) < 0) {
+       if (halcc_hal_get_version(hal, &manifest_major, &manifest_minor) < 0) {
                error_desc = "Invalid manifest version";
                goto out;
        }
index 960629cc08a0eb0b6ffcf6ab9581edfd57087ba9..8864b0976cc78a4b670a1efa2b089883e4cb1900 100644 (file)
@@ -211,7 +211,7 @@ TEST_F(HalccObjectTest, manifest_find_hal_steal_success)
        ASSERT_EQ(ret, 0);
        ASSERT_STREQ(hal_name, "hal.something");
 
-       ret = halcc_hal_get_version(hal, &major, &minor, NULL);
+       ret = halcc_hal_get_version(hal, &major, &minor);
        ASSERT_EQ(ret, 0);
        ASSERT_EQ(major, 2);
        ASSERT_EQ(minor, 34);
@@ -230,7 +230,7 @@ TEST_F(HalccObjectTest, manifest_find_hal_steal_success)
        ASSERT_EQ(ret, 0);
        ASSERT_STREQ(hal_name, "hal.something");
 
-       ret = halcc_hal_get_version(hal, &major, &minor, NULL);
+       ret = halcc_hal_get_version(hal, &major, &minor);
        ASSERT_EQ(ret, 0);
        ASSERT_EQ(major, 2);
        ASSERT_EQ(minor, 34);
@@ -253,7 +253,7 @@ TEST_F(HalccObjectTest, manifest_find_multiple_hal_success)
        ASSERT_EQ(ret, 0);
        ASSERT_STREQ(hal_name, "HAL_MODULE_BAR");
 
-       ret = halcc_hal_get_version(hal, &major, &minor, NULL);
+       ret = halcc_hal_get_version(hal, &major, &minor);
        ASSERT_EQ(ret, 0);
        ASSERT_EQ(major, 2);
        ASSERT_EQ(minor, 2);