From 1d11110f00e532f762e9472418acbb39b450fe56 Mon Sep 17 00:00:00 2001 From: "Felipe S. Prado" Date: Tue, 11 Oct 2016 16:29:04 +0200 Subject: [PATCH] TLM 2.0 Compliance Test --- DRAMSys/tests/TLM_compliance/fifoStrict.xml | 15 ++++ DRAMSys/tests/TLM_compliance/sim-batch.xml | 51 ++++++++++++ DRAMSys/tests/TLM_compliance/test.pl | 88 +++++++++++++++++++++ DRAMSys/tests/tests.pri | 5 ++ 4 files changed, 159 insertions(+) create mode 100644 DRAMSys/tests/TLM_compliance/fifoStrict.xml create mode 100644 DRAMSys/tests/TLM_compliance/sim-batch.xml create mode 100644 DRAMSys/tests/TLM_compliance/test.pl diff --git a/DRAMSys/tests/TLM_compliance/fifoStrict.xml b/DRAMSys/tests/TLM_compliance/fifoStrict.xml new file mode 100644 index 00000000..826abe9d --- /dev/null +++ b/DRAMSys/tests/TLM_compliance/fifoStrict.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/DRAMSys/tests/TLM_compliance/sim-batch.xml b/DRAMSys/tests/TLM_compliance/sim-batch.xml new file mode 100644 index 00000000..0d9d029d --- /dev/null +++ b/DRAMSys/tests/TLM_compliance/sim-batch.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + chstone-adpcm_32.stl + + + + diff --git a/DRAMSys/tests/TLM_compliance/test.pl b/DRAMSys/tests/TLM_compliance/test.pl new file mode 100644 index 00000000..09440a00 --- /dev/null +++ b/DRAMSys/tests/TLM_compliance/test.pl @@ -0,0 +1,88 @@ +#!/usr/bin/perl -w +# Copyright (c) 2015, University of Kaiserslautern +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# 1. Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# 2. 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. +# +# 3. Neither the name of the copyright holder 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 HOLDER +# 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. +# +# Authors: +# Matthias Jung, Felipe S. Prado +# + +# Test TLM Compliance: +# This test runs the simulation with standard configuration + +# Run Simulation: + +$numberOfCores = `cat /proc/cpuinfo | grep processor | wc -l`; + +chdir("../../../build/simulator/"); + +$exampleInitiatorLine = `grep -n '#define USE_EXAMPLE_INITIATOR' ../../DRAMSys/simulator/src/simulation/Simulation.h | cut -d: -f 1`; +chomp $exampleInitiatorLine; + +system("sed -i '" . $exampleInitiatorLine . "s^.*^#define USE_EXAMPLE_INITIATOR 1^' ../../DRAMSys/simulator/src/simulation/Simulation.h"); + +`make -j$numberOfCores > /dev/null 2>&1`; + +$storeModeLine = `grep -n '^' ../../DRAMSys/tests/TLM_compliance/fifoStrict.xml"); + +`./dramSys ../../DRAMSys/tests/TLM_compliance/sim-batch.xml &> ../../DRAMSys/tests/TLM_compliance/output.txt`; + +if("" ne `grep "Error: tlm2_protocol_checker" ../../DRAMSys/tests/TLM_compliance/output.txt`) +{ + exit -1; +} + +system("sed -i '" . $exampleInitiatorLine . "s^.*^#define USE_EXAMPLE_INITIATOR 0^' ../../DRAMSys/simulator/src/simulation/Simulation.h"); + +`make -j$numberOfCores > /dev/null 2>&1`; + +system("sed -i '" . $storeModeLine . "s^.*^ ^' ../../DRAMSys/tests/TLM_compliance/fifoStrict.xml"); + +`rm -f sim-batch/TLM_compliance_test*.tdb`; + +`./dramSys ../../DRAMSys/tests/TLM_compliance/sim-batch.xml &> ../../DRAMSys/tests/TLM_compliance/output.txt`; + +if("" ne `grep "Error: tlm2_protocol_checker" ../../DRAMSys/tests/TLM_compliance/output.txt`) +{ + exit -1; +} +exit 0; + + + + + + + + + + diff --git a/DRAMSys/tests/tests.pri b/DRAMSys/tests/tests.pri index 0224ef01..332abf63 100644 --- a/DRAMSys/tests/tests.pri +++ b/DRAMSys/tests/tests.pri @@ -22,6 +22,11 @@ OTHER_FILES += tests/timing_compliance/sim-batch.xml OTHER_FILES += tests/timing_compliance/fifoStrict.xml OTHER_FILES += tests/timing_compliance/test.pl +# TLM compliance test +OTHER_FILES += tests/TLM_compliance/sim-batch.xml +OTHER_FILES += tests/TLM_compliance/fifoStrict.xml +OTHER_FILES += tests/TLM_compliance/test.pl + # python unit tests OTHER_FILES += tests/unit/unit_test.py OTHER_FILES += tests/unit/mem_util.py