Project

General

Profile

How To Run jUnit Tests » History » Version 11

Sergey Smolov, 02/12/2020 02:59 PM

1 1 Sergey Smolov
h1. How To Run jUnit Tests
2
3
h2. Prerequisites
4
5
The most preferable OS is *Linux*. We prefer Debian-based distros, like Ubuntu.
6
7 4 Sergey Smolov
To run the project's jUnit tests the *gcc-mips-linux-gnu* package should be installed. Create _MIPS64_TCHAIN_ environment variable that points to a directory, that contains the _bin_ subdirectory with the toolchain components.
8 1 Sergey Smolov
9 6 Sergey Smolov
Install the packages that are mentioned in QEMU4V emulator's "Installation Guide":https://forge.ispras.ru/projects/qemu4v/wiki/Installation, because this is used in testing.
10 1 Sergey Smolov
11
h2. Overview
12
13
The *MicroTESK for MIPS* project's "Git repository":https://forge.ispras.ru/projects/microtesk-mips64/repository contains a number of JUnit tests. The typical JUnit test contains the following sequence of stages:
14 2 Sergey Smolov
15 8 Sergey Smolov
# Template-based test program generation - the result of this stage is _<notextile>*</notextile>.s_ MIPS assembly file and a _<notextile>*</notextile>.log_ execution trace file;
16 2 Sergey Smolov
# Test program compilation - the result of this stage is a binary ELF image of the test program;
17 8 Sergey Smolov
# ELF image emulation on QEMU - the result of this stage is a _<notextile>*</notextile>-qemu.log_ execution trace file.
18 2 Sergey Smolov
 
19
 In the nearest future the one more stage will be added:
20 11 Sergey Smolov
# Execution trace comparison - the _<notextile>*</notextile>.log_ MicroTESK trace and the _<notextile>*</notextile>-qemu.log_ QEMU4V execution traces will be compared by the "Trace Matcher":https://forge.ispras.ru/projects/traceutils tool, a report will be generated.
21 1 Sergey Smolov
22
To run the project tests, enter the project directory that contains the _gradlew_ script, and do the following:
23 10 Sergey Smolov
<pre><code class="shell">
24 9 Sergey Smolov
./gradlew clean test
25 10 Sergey Smolov
</code></pre>