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
This commit is contained in:
parent
41e12344a1
commit
e399308ef0
@ -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
tests.sh
4
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
update_compatibility_version.py
Normal file
68
update_compatibility_version.py
Normal file
@ -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()
|
Loading…
Reference in New Issue
Block a user