Skip to content

Advanced Reliable Measurement Output Reproduction

License

Notifications You must be signed in to change notification settings

jonasjuffinger/armor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Reliable Measurement Output Reproduction (ARMOR)

This small library embeds programmer selected files and command outputs into the measurement result csv file, encoded as base64. A user can simply execute the csv file and it extracts itself putting all source files and system config into a subfolder. To reproduce a measurement the extracted files can be compiled and executed.

ARMOR consists of the armor.h file and the Makefile. During making, the source files are archived and the archive linked to the binary.

During execution, the function additional_archive_content() adds additional files, like system configuration files and output from commands to the archive. The archive is then base64 encoded and written to the measurement output csv file. The csv read function used to open the output file must supported # for comments inside csv files. The first line contains a shebang to extract the base64 encoded archive to the directory supplied as the first argument or "source".

print_measurement_csv_header() must be called at the beginning of the program. To test the supplied 1_experiment pipe the stderr output to a csv file

./main 2> measurement.csv

Then, to get the source code and system configuration make the output file executable and execute it.

chmod +x measurement.csv
./measurement.csv

This creates an output directory source containing all files.

Requirements: libarchive-dev

About

Advanced Reliable Measurement Output Reproduction

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published