Skip to content

Extend documentation on organization and how to run #42

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 17, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -11,6 +11,14 @@ Eventually, we will also provide a set of reference `.root` and `.json` files (s
> Its structure and implementation may change during development.
> We welcome early feedback on the current state from any interested party.

## Test Categories

Tests in the RNTuple Validation Suite are organized into (nested) *categories*.
This is mirrored by the hierarchical directory layout in the repository.
For example, the [`types`](types) directory contains tests related to type support in the RNTuple specification.
It has subdirectories for tests concerning [fundamental types](types/fundamental) and C++ types, for example [`std::vector`](types/vector).
More tests are planned in the future, please [consult the list of issues](https://github.com/root-project/rntuple-validation/issues) in the GitHub repository.

## Reference Implementation

This repository also contains a reference implementation with ROOT macros.
@@ -19,3 +27,13 @@ In this release, the API is not yet finalized and all classes are in the `ROOT::
We plan to rely on this version until a first version of the RNTuple Validation Suite is done.
Then we will produce a first set of reference files that can be used to test backwards compatibility.
Afterwards, the implementation will be updated for the stable API (expected in ROOT v6.36).

### How to Run

For each test, we implement a `write.C` and `read.C` macro in the corresponding subdirectory.
The `write.C` macro produces a `.root` file with the contents as described in the `README` of each test subdirectory.
The `read.C` macro produces a `.json` file with a human-readable representation of the data in the `.root` file.
They can be run individually or all at once with `make` using the top-level [`Makefile`](Makefile).
The latter is also exercised by a GitHub Actions Workflow:
![Execute ROOT macros](https://github.com/root-project/rntuple-validation/actions/workflows/root.yml/badge.svg)
The job also uploads the produced set of `.root` and `.json` files, which can be downloaded from the Summary page.