Forráskód Böngészése

Add csharp compatibility tests between last released and the current version (#6407)

* Add csharp compatibility tests for 3.7.0

* Add compatibility test between last major version with current for C#

* Update last version number

* compatibility tests between last released and the current version

* fix typo
Jie Luo 6 éve
szülő
commit
e399308ef0
3 módosított fájl, 78 hozzáadás és 0 törlés
  1. 6 0
      csharp/compatibility_tests/v3.0.0/test.sh
  2. 4 0
      tests.sh
  3. 68 0
      update_compatibility_version.py

+ 6 - 0
csharp/compatibility_tests/v3.0.0/test.sh

@@ -34,6 +34,8 @@ cd $(dirname $0)
 # these tests).
 TEST_VERSION=3.0.0
 
+LAST_RELEASED=3.9.0
+
 # The old version of protobuf that we are testing compatibility against. This
 # is usually the same as TEST_VERSION (i.e., we use the tests extracted from
 # that version to test compatibility of the newest runtime against it), but it
@@ -52,6 +54,10 @@ case "$1" in
     OLD_VERSION=3.1.0
     OLD_VERSION_PROTOC=http://repo1.maven.org/maven2/com/google/protobuf/protoc/3.1.0/protoc-3.1.0-linux-x86_64.exe
     ;;
+  $LAST_RELEASED)
+    OLD_VERSION=$LAST_RELEASED
+    OLD_VERSION_PROTOC=http://repo1.maven.org/maven2/com/google/protobuf/protoc/$OLD_VERSION/protoc-$OLD_VERSION-linux-x86_64.exe
+    ;;
   *)
     echo "[ERROR]: Unknown version number: $1"
     exit 1

+ 4 - 0
tests.sh

@@ -147,6 +147,10 @@ build_csharp() {
 
   # Run csharp compatibility test between 3.0.0 and the current version.
   csharp/compatibility_tests/v3.0.0/test.sh 3.0.0
+
+  LAST_RELEASED=3.9.0
+  # Run csharp compatibility test between last released and the current version.
+  csharp/compatibility_tests/v3.0.0/test.sh $LAST_RELEASED
 }
 
 build_golang() {

+ 68 - 0
update_compatibility_version.py

@@ -0,0 +1,68 @@
+#!/usr/bin/env python
+# Usage: ./update_compatibility_version.py <MAJOR>.<MINOR>.<MICRO> [<RC version>]
+#
+# Example:
+# ./update_compatibility_version.py 3.7.1
+
+import datetime
+import re
+import sys
+from xml.dom import minidom
+
+if len(sys.argv) < 2 or len(sys.argv) > 3:
+  print """
+[ERROR] Please specify a version.
+
+./update_version.py <MAJOR>.<MINOR>.<MICRO> [<RC version>]
+
+Example:
+./update_version.py 3.7.1 2
+"""
+  exit(1)
+
+NEW_VERSION = sys.argv[1]
+NEW_VERSION_INFO = NEW_VERSION.split('.')
+if len(NEW_VERSION_INFO) != 3:
+  print """
+[ERROR] Version must be in the format <MAJOR>.<MINOR>.<MICRO>
+
+Example:
+./update_version.py 3.7.3
+"""
+  exit(1)
+
+if len(sys.argv) > 2:
+  RC_VERSION = int(sys.argv[2])
+  # Do not update compatibility versions for rc release
+  if RC_VERSION != 0:
+    exit(0)
+
+def RewriteTextFile(filename, line_rewriter):
+  lines = open(filename, 'r').readlines()
+  updated_lines = []
+  for line in lines:
+    updated_lines.append(line_rewriter(line))
+  if lines == updated_lines:
+    print '%s was not updated. Please double check.' % filename
+  f = open(filename, 'w')
+  f.write(''.join(updated_lines))
+  f.close()
+
+
+def UpdateCsharp():
+  RewriteTextFile('csharp/compatibility_tests/v3.0.0/test.sh',
+    lambda line : re.sub(
+      r'LAST_RELEASED=.*$',
+      'LAST_RELEASED=%s' % NEW_VERSION,
+      line))
+
+def UpdateTests():
+  RewriteTextFile('tests.sh',
+    lambda line : re.sub(
+      r'LAST_RELEASED=.*$',
+      'LAST_RELEASED=%s' % NEW_VERSION,
+      line))
+
+
+UpdateCsharp()
+UpdateTests()