diff options
author | Yan Wang <yawanng@google.com> | 2019-07-18 10:42:11 -0700 |
---|---|---|
committer | Yan Wang <yawanng@google.com> | 2019-07-18 15:49:45 -0700 |
commit | 9104e0553d0df14e49ef4370469910a4d0602f77 (patch) | |
tree | 66a9179c63f0b6738a0cac9964abc0f5c274284c /startop/scripts/iorap/compiler_test.py | |
parent | 9af1627e57af0980acd00d09c3ff7d7c2f5481ad (diff) |
startop: Add test for compiler.py.
Test: pytest compiler_test.py
Bug: 137398235
Change-Id: I036ed1fee1451176ef854a9a00c460eb0685bafe
Diffstat (limited to 'startop/scripts/iorap/compiler_test.py')
-rw-r--r-- | startop/scripts/iorap/compiler_test.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/startop/scripts/iorap/compiler_test.py b/startop/scripts/iorap/compiler_test.py new file mode 100644 index 000000000000..fcb7269ed8d2 --- /dev/null +++ b/startop/scripts/iorap/compiler_test.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 +# +# Copyright 2019, 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. +# + +""" +Unit tests for the compiler.py script. + +Install: + $> sudo apt-get install python3-pytest ## OR + $> pip install -U pytest +See also https://docs.pytest.org/en/latest/getting-started.html + +Usage: + $> pytest compiler_test.py + +See also https://docs.pytest.org/en/latest/usage.html +""" +import os + +import compiler + +DIR = os.path.abspath(os.path.dirname(__file__)) +TEXTCACHE = os.path.join(DIR, 'test_fixtures/compiler/common_textcache') +SYSTRACE = os.path.join(DIR, 'test_fixtures/compiler/common_systrace') +ARGV = [os.path.join(DIR, 'compiler.py'), '-i', TEXTCACHE, '-t', SYSTRACE] + +def assert_compile_result(output, expected, *extra_argv): + argv = ARGV + ['-o', output] + [args for args in extra_argv] + + compiler.main(argv) + + with open(output, 'rb') as f1, open(expected, 'rb') as f2: + assert f1.read() == f2.read() + +def test_compiler_main(tmpdir): + output = tmpdir.mkdir('compiler').join('output') + + # No duration + expected = os.path.join(DIR, + 'test_fixtures/compiler/test_result_without_duration.TraceFile.pb') + assert_compile_result(output, expected) + + # 10ms duration + expected = os.path.join(DIR, + 'test_fixtures/compiler/test_result_with_duration.TraceFile.pb') + assert_compile_result(output, expected, '--duration', '10') + + # 30ms duration + expected = os.path.join(DIR, + 'test_fixtures/compiler/test_result_without_duration.TraceFile.pb') + assert_compile_result(output, expected, '--duration', '30') |