Davide Basilio Bartolini has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/47740 )

Change subject: base-stats: Add basic test for hdf5 stats
......................................................................

base-stats: Add basic test for hdf5 stats

Related JIRA issue: https://gem5.atlassian.net/browse/GEM5-1028

Change-Id: I67badcf261f04cd446d016a4ad3d7393bad9a6ba
---
A tests/gem5/stats/test_hdf5.py
M tests/gem5/verifier.py
2 files changed, 78 insertions(+), 0 deletions(-)



diff --git a/tests/gem5/stats/test_hdf5.py b/tests/gem5/stats/test_hdf5.py
new file mode 100644
index 0000000..85167c1
--- /dev/null
+++ b/tests/gem5/stats/test_hdf5.py
@@ -0,0 +1,65 @@
+# Copyright (c) 2021 Huawei International
+# All rights reserved.
+#
+# The license below extends only to copyright in the software and shall
+# not be construed as granting a license to any other intellectual
+# property including but not limited to intellectual property relating
+# to a hardware implementation of the functionality of the software
+# licensed hereunder.  You may use the software subject to the license
+# terms below provided that you ensure that this notice is replicated
+# unmodified and in its entirety in all distributions of the software,
+# modified or unmodified, in source code or in binary form.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+'''
+Test file for the hdf5 stats.
+It just runs an SE simulation with the hdf5 stats and checks that the
+simulation succeeds and the stats file exists.
+No specific checks on the stats are performed.
+'''
+import re
+import os
+from testlib import *
+
+ok_exit_regex = re.compile(
+r'Exiting @ tick \d+ because exiting with last active thread context'
+)
+
+path = joinpath(config.bin_path, 'test-progs', 'hello', 'bin', 'arm', 'linux')
+filename = 'hello'
+url = (config.resource_url + '/test-progs/hello/bin/arm/linux/hello')
+test_program = DownloadedProgram(url, path, filename)
+
+stdout_verifier = verifier.MatchRegex(ok_exit_regex)
+h5_verifier = verifier.CheckH5StatsExist()
+gem5_verify_config(
+    name='hdf5_test',
+    verifiers=[stdout_verifier, h5_verifier],
+    fixtures=(test_program,),
+    config=os.path.join(config.base_dir, 'configs', 'example','se.py'),
+    config_args=['--cmd', joinpath(test_program.path, filename)],
+    gem5_args=['--stats-file=h5://stats.h5'],
+    valid_isas=(constants.arm_tag,)
+)
diff --git a/tests/gem5/verifier.py b/tests/gem5/verifier.py
index b539a67..91912f1 100644
--- a/tests/gem5/verifier.py
+++ b/tests/gem5/verifier.py
@@ -11,6 +11,7 @@
 # modified or unmodified, in source code or in binary form.
 #
 # Copyright (c) 2017 Mark D. Hill and David A. Wood
+# Copyright (c) 2021 Huawei International
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -40,6 +41,7 @@
 Built in test cases that verify particular details about a gem5 run.
 '''
 import re
+import os

 from testlib import test_util
 from testlib.configuration import constants
@@ -59,6 +61,17 @@
         return test_util.TestFunction(self._test,
                 name=name, fixtures=self.fixtures)

+class CheckH5StatsExist(Verifier):
+    def __init__(self, stats_file='stats.h5'):
+        super(CheckH5StatsExist, self).__init__()
+        self.stats_file = stats_file
+
+    def test(self, params):
+        tempdir = params.fixtures[constants.tempdir_fixture_name].path
+        h5_file = joinpath(tempdir, self.stats_file)
+        if not os.path.isfile(h5_file):
+            test_util.fail('Could not find h5 stats file %s', h5_file)
+
 class MatchGoldStandard(Verifier):
     '''
     Compares a standard output to the test output and passes if they match,

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/47740
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I67badcf261f04cd446d016a4ad3d7393bad9a6ba
Gerrit-Change-Number: 47740
Gerrit-PatchSet: 1
Gerrit-Owner: Davide Basilio Bartolini <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
  • [gem5-dev] Change in gem5/g... Davide Basilio Bartolini (Gerrit) via gem5-dev

Reply via email to