summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Yourtchenko <ayourtch@gmail.com>2020-09-22 15:11:51 +0000
committerDave Wallace <dwallacelf@gmail.com>2020-09-23 15:21:58 +0000
commit226e8e65bc378ac63af3c88bb51c0c79d5a075d1 (patch)
tree6359b07e572ad05a5f3208b7c8da8cd7ee84882a
parent1aa63b83f90487db5a4fb9953d284f796801608f (diff)
vppapigen: crcchecker: harmonize the in_progress marking
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> (cherry picked from commit 6a3d4cc9a11efbe73a1cda35a64c619eebde0b24)
-rwxr-xr-xextras/scripts/crcchecker.py20
-rwxr-xr-xextras/scripts/tests/test_crcchecker.sh30
2 files changed, 44 insertions, 6 deletions
diff --git a/extras/scripts/crcchecker.py b/extras/scripts/crcchecker.py
index 7929374c5c8..2b026338129 100755
--- a/extras/scripts/crcchecker.py
+++ b/extras/scripts/crcchecker.py
@@ -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)
diff --git a/extras/scripts/tests/test_crcchecker.sh b/extras/scripts/tests/test_crcchecker.sh
index 07b6bbf7f4b..9cfc66ae523 100755
--- a/extras/scripts/tests/test_crcchecker.sh
+++ b/extras/scripts/tests/test_crcchecker.sh
@@ -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