Project

General

Profile

How to run JUnit tests » History » Version 7

Sergey Smolov, 12/11/2019 04:39 PM

1 4 Sergey Smolov
h1. Template-based JUnit test cases
2 1 Sergey Smolov
3
h2. Prerequisites
4
5
This instruction is suitable for those developers of "MicroTESK for RISC-V":https://forge.ispras.ru/projects/microtesk-riscv project who want to run project's JUnit test cases on their own machines. The instruction is applicable for Linux-based OS only. All the package names that are mentioned here are correct for Ubuntu-based distros and may be different in other OS. For JUnit tests running you should have an access to "Nexus Repository Manager":https://forge.ispras.ru/nexus server at ISP RAS network. Ask system administrator of ISP Nexus for login and password and store them at the _REPO_USER and _REPO_PASSWORD system variables respectively.
6
7
h2. Introduction
8
9
The "MicroTESK for RISC-V":https://forge.ispras.ru/projects/microtesk-riscv project contains a collection of JUnit test cases. Most of them consist of the following steps:
10
* Assembler test program and "MicroTESK":https://forge.ispras.ru/projects/microtesk simulator log generation from the Ruby test template and RISC-V ISA nML specifications;
11
* Test program compilation into binary image;
12
* Test program binary image simulation on "QEMU4V":https://forge.ispras.ru/projects/qemu4v (simulation log file is produced);
13
* Test program binary image simulation on "Spike":https://github.com/riscv/riscv-isa-sim (simulation log file is produced);
14
* MicroTESK and QEMU4V log comparison by "Trace Matcher":https://forge.ispras.ru/projects/traceutils tool.
15
16
For all the steps of JUnit test cases to be accomplished, several auxiliary tools should be installed. For complete guide read all the chapters below.
17
18
h2. Toolchain installation
19
20
For RISC-V assembler test program compilation we use "GNU toolchain for RISC-V":https://github.com/riscv/riscv-gnu-toolchain. Get the toolchain's source code and switch to "rvv-0.7.1" branch:
21
<pre>
22
$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
23
$ cd riscv-gnu-toolchain
24
$ git checkout -b rvv-0.7.1 origin/rvv-0.7.1
25 5 Sergey Smolov
$ git submodule update --init --recursive
26 1 Sergey Smolov
</pre>
27
To complete the installation follow the "instruction":https://github.com/riscv/riscv-gnu-toolchain.
28
29
h2. Simulator installation
30
31 3 Sergey Smolov
For RISC-V test programs validation we use both QEMU4V and Spike simulators. "QEMU4V":https://forge.ispras.ru/projects/qemu4v is downloaded by project's scripts in a binary form, so there is no need to install it. However, *libjpeg62* package should be installed in your system for QEMU4V binary running.
32 1 Sergey Smolov
For Spike installation follow the "instruction":https://github.com/riscv/riscv-isa-sim. Note, that Spike must be installed in the same directory the toolchain has been installed (for example, "/opt/riscv").
33
34 6 Sergey Smolov
h2. Dependencies
35
36 7 Sergey Smolov
The following packages should be installed in your OS: *expect*.
37 6 Sergey Smolov
38 1 Sergey Smolov
h2. Test cases running
39
40
To run JUnit test cases enter the project directory and execute the following command:
41
<pre>
42
$ ./gradlew clean test
43
</pre>