llvm-profdata: Clean up and reorganize some tests
authorJustin Bogner <mail@justinbogner.com>
Tue, 29 Jul 2014 22:29:23 +0000 (22:29 +0000)
committerJustin Bogner <mail@justinbogner.com>
Tue, 29 Jul 2014 22:29:23 +0000 (22:29 +0000)
This moves some tests around to make it clearer what's being tested,
and adds very rudimentary comment syntax to the text input format to
make specifying this kind of test a little bit simpler.

llvm-svn: 214235

llvm/lib/ProfileData/InstrProfReader.cpp
llvm/test/tools/llvm-profdata/Inputs/overflow.profdata [deleted file]
llvm/test/tools/llvm-profdata/hash-mismatch.profdata [new file with mode: 0644]
llvm/test/tools/llvm-profdata/lit.local.cfg [new file with mode: 0644]
llvm/test/tools/llvm-profdata/multiple-inputs.test [moved from llvm/test/tools/llvm-profdata/simple.test with 98% similarity]
llvm/test/tools/llvm-profdata/overflow.profdata [new file with mode: 0644]
llvm/test/tools/llvm-profdata/text-format-errors.test [moved from llvm/test/tools/llvm-profdata/errors.test with 69% similarity]

index 0b36728..e8f6461 100644 (file)
@@ -83,8 +83,8 @@ void InstrProfIterator::Increment() {
 }
 
 std::error_code TextInstrProfReader::readNextRecord(InstrProfRecord &Record) {
-  // Skip empty lines.
-  while (!Line.is_at_end() && Line->empty())
+  // Skip empty lines and comments.
+  while (!Line.is_at_end() && (Line->empty() || Line->startswith("#")))
     ++Line;
   // If we hit EOF while looking for a name, we're done.
   if (Line.is_at_end())
diff --git a/llvm/test/tools/llvm-profdata/Inputs/overflow.profdata b/llvm/test/tools/llvm-profdata/Inputs/overflow.profdata
deleted file mode 100644 (file)
index c9a9d69..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-overflow
-1
-1
-9223372036854775808
diff --git a/llvm/test/tools/llvm-profdata/hash-mismatch.profdata b/llvm/test/tools/llvm-profdata/hash-mismatch.profdata
new file mode 100644 (file)
index 0000000..1263258
--- /dev/null
@@ -0,0 +1,17 @@
+# RUN: llvm-profdata merge %s -o %t.out 2>&1 | FileCheck %s
+# CHECK: hash-mismatch.profdata: foo: Function hash mismatch
+
+foo
+3
+3
+1
+2
+3
+
+foo
+4
+4
+11
+22
+33
+44
diff --git a/llvm/test/tools/llvm-profdata/lit.local.cfg b/llvm/test/tools/llvm-profdata/lit.local.cfg
new file mode 100644 (file)
index 0000000..33bc0a9
--- /dev/null
@@ -0,0 +1 @@
+config.suffixes.add('.profdata')
@@ -1,3 +1,5 @@
+Some very basic tests for the multiple input cases.
+
 RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo3-2.profdata -o %t
 RUN: llvm-profdata show %t -all-functions -counts | FileCheck %s --check-prefix=FOO3
 RUN: llvm-profdata merge %p/Inputs/foo3-2.profdata %p/Inputs/foo3-1.profdata -o %t
diff --git a/llvm/test/tools/llvm-profdata/overflow.profdata b/llvm/test/tools/llvm-profdata/overflow.profdata
new file mode 100644 (file)
index 0000000..62ced05
--- /dev/null
@@ -0,0 +1,12 @@
+# RUN: llvm-profdata merge %s -o %t.out 2>&1 | FileCheck %s
+# CHECK: overflow.profdata: overflow: Counter overflow
+
+overflow
+1
+1
+9223372036854775808
+
+overflow
+1
+1
+9223372036854775808
@@ -1,9 +1,3 @@
-RUN: llvm-profdata merge %p/Inputs/foo3-1.profdata %p/Inputs/foo4-1.profdata -o %t.out 2>&1 | FileCheck %s --check-prefix=HASH
-HASH: foo4-1.profdata: foo: Function hash mismatch
-
-RUN: llvm-profdata merge %p/Inputs/overflow.profdata %p/Inputs/overflow.profdata -o %t.out 2>&1 | FileCheck %s --check-prefix=OVERFLOW
-OVERFLOW: overflow.profdata: overflow: Counter overflow
-
 RUN: not llvm-profdata show %p/Inputs/invalid-count-later.profdata 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER
 RUN: not llvm-profdata merge %p/Inputs/invalid-count-later.profdata %p/Inputs/invalid-count-later.profdata -o %t.out 2>&1 | FileCheck %s --check-prefix=INVALID-COUNT-LATER
 INVALID-COUNT-LATER: error: {{.*}}invalid-count-later.profdata: Malformed profile data