Skip to content

VolumeT0

Michele Perlotto edited this page Sep 23, 2025 · 1 revision

The T0 volume (named as VolumeT0) serves as a shared file system for all services. It has two primary purposes:

  1. To store the testable classes and their corresponding opponent robots;
  2. To preserve a copy of every compilation submitted by players, including related metrics, for each match played.

An example of the volume structure is shown below.

FolderTree
├── ClassUT
│   ├── OutputFormat
│   │   └── Evosuite
│   │       ├── coverage
│   │       │   └── 01Level
│   │       │       ├── coveragetot.xml
│   │       │       └── statistics.csv
│   │       └── project
│   │           └── 01Level
│   │               └── src
│   │                   ├── main
│   │                   │   └── java
│   │                   │       └── OutputFormatSourceCode
│   │                   │           └── OutputFormat.java
│   │                   └── test
│   │                       └── java
│   │                           └── OutputFormatSourceCode
│   │                               ├── OutputFormat_ESTest.java
│   │                               └── OutputFormat_ESTest_scaffolding.java
│   └── unmodified_src
│       └── OutputFormat
│           └── OutputFormat.java
└── StudentTest
    └── Player1
        └── PartitaSingola
            └── OutputFormat
                ├── 2025-05-12_13-07-40
                │   └── Game1
                │       └── Round1
                │           └── Turn0
                │               ├── coverage
                │               │   ├── coveragetot.xml
                │               │   └── statistics.csv
                │               └── project
                │                   └── src
                │                       ├── java
                │                       │   └── main
                │                       │       └── OutputFormat.java
                │                       └── test
                │                           └── main
                │                               └── TestTestOutputFormat.java
                ├── 2025-05-12_13-08-22
                │   └── Game1
                │       └── Round1
                │           └── Turn1
                │               ├── coverage
                │               │   ├── coveragetot.xml
                │               │   └── statistics.csv
                │               └── project
                │                   └── src
                │                       ├── java
                │                       │   └── main
                │                       │       └── OutputFormat.java
                │                       └── test
                │                           └── main
                │                               └── TestTestOutputFormat.java
                └── 2025-05-12_13-10-07
                    └── Game1
                        └── Round1
                            └── Turn2
                                ├── coverage
                                │   ├── coveragetot.xml
                                │   └── statistics.csv
                                └── project
                                    └── src
                                        ├── java
                                        │   └── main
                                        │       └── OutputFormat.java
                                        └── test
                                            └── main
                                                └── TestTestOutputFormat.java

The volume is organized into two main directories under a common root folder, referred to as FolderTree:

  1. StudentTest: this directory contains all the user-submitted compilations along with their corresponding results. Each compilation is stored in a path with the following structure:

    player_id/game_mode/compilation_timestamp/game_id/round_number/turn_number/

    Each compilation directory includes:

    • Coverage and mutation metrics generated by JaCoCo and EvoSuite (if compilation was successful);
    • The user-written test, stored as a runnable Java project.
  2. ClassUT: this directory stores the available robots (JUnit test class). Each robot is placed inside a subdirectory named after the class being tested and is organized into two subfolders:

    • coverage: contains the coverage and mutation metrics results from JaCoCo and EvoSuite;
    • project: contains the robot (JUnit test) structured as an executable Java project.

    Additionally, the unmodified_src folder holds a pristine copy of each class added to the system. These versions are used during gameplay and may differ from the versions inside the robots’ project directory. This is because robot test execution may require modifications to the class under test—for instance, placing it in a specific package to enable compatibility with the test suite.

Clone this wiki locally