瀏覽代碼

Added Python failure lists, and fixes to make sure failure propagates.

Josh Haberman 9 年之前
父節點
當前提交
4b31ffa488

+ 6 - 0
conformance/conformance_test_runner.cc

@@ -202,6 +202,12 @@ void UsageError() {
 
 
 void ParseFailureList(const char *filename, vector<string>* failure_list) {
 void ParseFailureList(const char *filename, vector<string>* failure_list) {
   std::ifstream infile(filename);
   std::ifstream infile(filename);
+
+  if (!infile.is_open()) {
+    fprintf(stderr, "Couldn't open failure list file: %s\n", filename);
+    exit(1);
+  }
+
   for (string line; getline(infile, line);) {
   for (string line; getline(infile, line);) {
     // Remove whitespace.
     // Remove whitespace.
     line.erase(std::remove_if(line.begin(), line.end(), ::isspace),
     line.erase(std::remove_if(line.begin(), line.end(), ::isspace),

+ 0 - 0
conformance/failure_list_python.txt


+ 25 - 0
conformance/failure_list_python_cpp.txt

@@ -0,0 +1,25 @@
+# This is the list of conformance tests that are known to fail for the
+# Python/C++ implementation right now.  These should be fixed.
+#
+# By listing them here we can keep tabs on which ones are failing and be sure
+# that we don't introduce regressions in other tests.
+#
+# TODO(haberman): insert links to corresponding bugs tracking the issue.
+# Should we use GitHub issues or the Google-internal bug tracker?
+
+ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
+ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
+ProtobufInput.PrematureEofInPackedField.BOOL
+ProtobufInput.PrematureEofInPackedField.DOUBLE
+ProtobufInput.PrematureEofInPackedField.ENUM
+ProtobufInput.PrematureEofInPackedField.FIXED32
+ProtobufInput.PrematureEofInPackedField.FIXED64
+ProtobufInput.PrematureEofInPackedField.FLOAT
+ProtobufInput.PrematureEofInPackedField.INT32
+ProtobufInput.PrematureEofInPackedField.INT64
+ProtobufInput.PrematureEofInPackedField.SFIXED32
+ProtobufInput.PrematureEofInPackedField.SFIXED64
+ProtobufInput.PrematureEofInPackedField.SINT32
+ProtobufInput.PrematureEofInPackedField.SINT64
+ProtobufInput.PrematureEofInPackedField.UINT32
+ProtobufInput.PrematureEofInPackedField.UINT64

+ 2 - 1
python/setup.py

@@ -147,7 +147,8 @@ class build_py(_build_py):
 class test_conformance(_build_py):
 class test_conformance(_build_py):
   target = 'test_python'
   target = 'test_python'
   def run(self):
   def run(self):
-    os.system('cd ../conformance && make %s' % (test_conformance.target))
+    cmd = 'cd ../conformance && make %s' % (test_conformance.target)
+    status = subprocess.check_call(cmd, shell=True)
 
 
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':