summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
author Eric Holk <eholk@google.com> 2020-12-07 15:07:00 -0800
committer Treehugger Robot <treehugger-gerrit@google.com> 2020-12-21 18:09:31 +0000
commit51a9283984b05511bd98f9bcbd1f2f18900239cc (patch)
tree09b25eb574b2c93f4e940bfab423b58acdf340bd /test
parent20cadbf2a204a029b595cd44f9298f6570b5c812 (diff)
[metrics] Add file output support
Adds a new command line option, -Xwrite-metrics-to-file=_, which specifies a file for writing metrics to. This can be used in conjunction with -Xwrite-metrics-to-log, which will cause the output to go to both logcat and the file. Writing metrics to a file can be helpful for testing or benchmarking environments. Access to the file is protected using advisory locking, so it is safe to have multiple processes write metrics to the same file. Test: test/run-test --host test/2234-write-metrics-to-file Bug: 175025360, 170149255 Change-Id: I83a4f959cbb96847dc71188035c050a73b915064
Diffstat (limited to 'test')
-rwxr-xr-xtest/2234-write-metrics-to-file/check34
-rw-r--r--test/2234-write-metrics-to-file/expected-stderr.txt0
-rw-r--r--test/2234-write-metrics-to-file/expected-stdout.txt0
-rw-r--r--test/2234-write-metrics-to-file/info.txt1
-rwxr-xr-xtest/2234-write-metrics-to-file/run19
-rw-r--r--test/2234-write-metrics-to-file/src/Main.java20
-rw-r--r--test/knownfailures.json3
7 files changed, 76 insertions, 1 deletions
diff --git a/test/2234-write-metrics-to-file/check b/test/2234-write-metrics-to-file/check
new file mode 100755
index 0000000000..b9040957f6
--- /dev/null
+++ b/test/2234-write-metrics-to-file/check
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Copyright (C) 2020 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# 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
+
+# Check that one of the metrics appears in stderr.
+grep 'ClassVerificationTotalTime' "$2" >/dev/null
+MSG_FOUND=$?
+
+if [[ $MSG_FOUND -ne 0 ]] ; then
+ # Print out the log and return with error.
+ cat "$2"
+ exit 1
+fi
+
+# Success.
+exit 0
diff --git a/test/2234-write-metrics-to-file/expected-stderr.txt b/test/2234-write-metrics-to-file/expected-stderr.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/2234-write-metrics-to-file/expected-stderr.txt
diff --git a/test/2234-write-metrics-to-file/expected-stdout.txt b/test/2234-write-metrics-to-file/expected-stdout.txt
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/test/2234-write-metrics-to-file/expected-stdout.txt
diff --git a/test/2234-write-metrics-to-file/info.txt b/test/2234-write-metrics-to-file/info.txt
new file mode 100644
index 0000000000..d2e50dfde0
--- /dev/null
+++ b/test/2234-write-metrics-to-file/info.txt
@@ -0,0 +1 @@
+Checks that metrics can be written to a file.
diff --git a/test/2234-write-metrics-to-file/run b/test/2234-write-metrics-to-file/run
new file mode 100755
index 0000000000..d2ff292100
--- /dev/null
+++ b/test/2234-write-metrics-to-file/run
@@ -0,0 +1,19 @@
+#!/bin/bash
+#
+# Copyright (C) 2020 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Use /dev/stdout as the file so that buildbot can automatically grab the output for the check
+# script.
+exec ${RUN} $@ --runtime-option -Xwrite-metrics-to-file=/dev/stdout
diff --git a/test/2234-write-metrics-to-file/src/Main.java b/test/2234-write-metrics-to-file/src/Main.java
new file mode 100644
index 0000000000..0426192ab2
--- /dev/null
+++ b/test/2234-write-metrics-to-file/src/Main.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class Main {
+ public static void main(String[] args) {
+ }
+}
diff --git a/test/knownfailures.json b/test/knownfailures.json
index 385db458a9..4c6976258b 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -1351,7 +1351,8 @@
"description": ["Failing on RI. Needs further investigating."]
},
{
- "tests": ["2232-write-metrics-to-log"],
+ "tests": ["2232-write-metrics-to-log",
+ "2234-write-metrics-to-file"],
"variant": "jvm",
"description": ["RI does not support ART metrics."]
},