Verify ART run-tests' standard output and standard error separately.
Introduce expected standard error files for ART run-tests. Collect
tests' standard output and standard error separately and check them
against the corresponding expectation file.
Test: Run ART run-tests on host and device using `testrunner.py`.
Test: atest --test-mapping art:all
Test: atest --test-mapping cts/hostsidetests/jvmti:all
Bug: 171865375
Bug: 147812905
Change-Id: Ie95bec4a4684ff6791d464124ce8976339432d1f
diff --git a/test/143-string-value/Android.bp b/test/143-string-value/Android.bp
index 0cca620..d2402b2 100644
--- a/test/143-string-value/Android.bp
+++ b/test/143-string-value/Android.bp
@@ -8,13 +8,24 @@
defaults: ["art-run-test-defaults"],
test_config_template: ":art-run-test-target-template",
srcs: ["src/**/*.java"],
- data: [":art-run-test-143-string-value-expected-stdout"],
+ data: [
+ ":art-run-test-143-string-value-expected-stdout",
+ ":art-run-test-143-string-value-expected-stderr",
+ ],
}
-// Test's expected output.
+// Test's expected standard output.
genrule {
name: "art-run-test-143-string-value-expected-stdout",
out: ["art-run-test-143-string-value-expected-stdout.txt"],
srcs: ["expected-stdout.txt"],
cmd: "cp -f $(in) $(out)",
}
+
+// Test's expected standard error.
+genrule {
+ name: "art-run-test-143-string-value-expected-stderr",
+ out: ["art-run-test-143-string-value-expected-stderr.txt"],
+ srcs: ["expected-stderr.txt"],
+ cmd: "cp -f $(in) $(out)",
+}
diff --git a/test/143-string-value/check b/test/143-string-value/check
index b5e51ce..0691e88 100755
--- a/test/143-string-value/check
+++ b/test/143-string-value/check
@@ -14,7 +14,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Strip error log messages.
-sed -e '/^.*dalvikvm\(\|32\|64\) E.*\] /d' "$2" > "$2.tmp"
+# Inputs:
+# $1: Test's expected standard output
+# $2: Test's actual standard output
+# $3: Test's expected standard error
+# $4: Test's actual standard error
-diff --strip-trailing-cr -q "$1" "$2.tmp" >/dev/null
+# Strip error log messages.
+sed -e '/^.*dalvikvm\(\|32\|64\) E.*\] /d' "$4" > "$4.tmp"
+
+diff --strip-trailing-cr -q "$1" "$2" >/dev/null \
+ && diff --strip-trailing-cr -q "$3" "$4.tmp" >/dev/null
diff --git a/test/143-string-value/expected-stderr.txt b/test/143-string-value/expected-stderr.txt
new file mode 100644
index 0000000..06cdb89
--- /dev/null
+++ b/test/143-string-value/expected-stderr.txt
@@ -0,0 +1 @@
+The String#value field is not present on Android versions >= 6.0
diff --git a/test/143-string-value/expected-stdout.txt b/test/143-string-value/expected-stdout.txt
index 06cdb89..e69de29 100644
--- a/test/143-string-value/expected-stdout.txt
+++ b/test/143-string-value/expected-stdout.txt
@@ -1 +0,0 @@
-The String#value field is not present on Android versions >= 6.0