vppapigen: crcchecker: harmonize the in_progress marking 94/28994/2
authorAndrew Yourtchenko <ayourtch@gmail.com>
Tue, 22 Sep 2020 15:11:51 +0000 (15:11 +0000)
committerOle Tr�an <otroan@employees.org>
Wed, 23 Sep 2020 08:09:54 +0000 (08:09 +0000)
The format for deprecation is "option deprecated" now,
so harmonize the in-progress marking to logically be
"option in_progress"

At the same time recognize the legacy/erroneous
types of marking, print the warning.

Change-Id: If418dfadd69ffb112550164d63d13420e51cefd7
Type: fix
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
extras/scripts/crcchecker.py
extras/scripts/tests/test_crcchecker.sh

index 7929374..2b02633 100755 (executable)
@@ -96,16 +96,24 @@ def filelist_from_patchset():
     return set(filelist)
 
 def is_deprecated(d, k):
-    if 'options' in d[k] and 'deprecated' in d[k]['options']:
-        return True
+    if 'options' in d[k]:
+        if 'deprecated' in d[k]['options']:
+            return True
+        # recognize the deprecated format
+        if 'status' in d[k]['options'] and d[k]['options']['status'] == 'deprecated':
+            print("WARNING: please use 'option deprecated;'")
+            return True
     return False
 
 def is_in_progress(d, k):
-    try:
-        if d[k]['options']['status'] == 'in_progress':
+    if 'options' in d[k]:
+        if 'in_progress' in d[k]['options']:
+            return True
+        # recognize the deprecated format
+        if  'status' in d[k]['options'] and d[k]['options']['status'] == 'in_progress':
+            print("WARNING: please use 'option in_progress;'")
             return True
-    except:
-        return False
+    return False
 
 def report(new, old):
     added, removed, modified, same = dict_compare(new, old)
index 07b6bbf..9cfc66a 100755 (executable)
@@ -77,6 +77,29 @@ git add crccheck.api
 git commit -m "deprecated api";
 extras/scripts/crcchecker.py --check-patchset
 
+echo "TEST 7.1: Verify we can delete deprecated message (old/confused style)"
+cat >crccheck_dep.api <<EOL
+option version="1.0.0";
+autoreply define crccheck
+{
+  option status="deprecated";
+  bool foo;
+};
+EOL
+git add crccheck_dep.api
+git commit -m "deprecated api";
+# delete API
+cat >crccheck_dep.api <<EOL
+option version="1.0.0";
+autoreply define crccheck_2
+{
+  bool foo;
+};
+EOL
+git add crccheck_dep.api
+git commit -m "deprecated api";
+extras/scripts/crcchecker.py --check-patchset
+
 echo "TEST 8: Verify that we can not rename a non-deprecated message"
 sed -i -e 's/crccheck_2/crccheck_3/g' crccheck.api
 git add crccheck.api
@@ -107,6 +130,13 @@ git add crccheck.api
 git commit -m "renamed in-progress api";
 extras/scripts/crcchecker.py --check-patchset
 
+echo "TEST11.1: Switch to new designation of in-progress API"
+sed -i -e 's/status="in_progress"/in_progress/g' crccheck.api
+git add crccheck.api
+git commit -m "new designation of in-progress api";
+extras/scripts/crcchecker.py --check-patchset
+
+
 echo "TEST12: Verify we can add a field to an in-progress API"
 sed -i -e 's/foobar;/foobar; bool new_baz;/g' crccheck.api
 git add crccheck.api