Test framework to run an OS in multiple emulators, as a guest graphical / text shell on linux, and so on.
Go to file
Georges Dupéron e8349eb34c Compute the disk and partition GUIDs from the disk image itself (with GUIDs initially all-zero)
This allows us to have a deterministic build (given a fixed environment)
without having to rely on GIT (the .git is not copied in the Guix build
environment), and without having to rely on Guix (which previously had to
inject the input hash into the source tree).

Guix is therefore "only" responsible for ensuring that the build tools and
environment are fixed, but is not strictly necessary to have reproducible
builds.
2018-10-15 00:29:57 +02:00
example-os appveyor: test OS, run os.bat in a nested cmd.exe, fix: MS-DOS was ignoring one line 2018-07-29 00:35:17 +02:00
test Tests should fail if the OS filename argument is missing. 2018-10-02 03:18:08 +02:00
utils Added another safety option to bash, moved bash invocation to a separate file 2018-10-02 03:19:02 +02:00
.gitignore Compute the disk and partition GUIDs from the disk image itself (with GUIDs initially all-zero) 2018-10-15 00:29:57 +02:00
.travis.yml make [all] now uses the guix build environment (but other targets don't) 2018-10-15 00:29:57 +02:00
appveyor.yml Installed datefudge on Appveyor via Cygwin 2018-10-01 21:08:37 +02:00
guix.scm Compute the disk and partition GUIDs from the disk image itself (with GUIDs initially all-zero) 2018-10-15 00:29:57 +02:00
guix.scm-gpl-license Started describing a Guix build environment 2018-10-15 00:29:54 +02:00
LICENSE.txt Initial commit 2018-06-24 23:49:31 +02:00
Makefile Compute the disk and partition GUIDs from the disk image itself (with GUIDs initially all-zero) 2018-10-15 00:29:57 +02:00
Makefile.example-os Compute the disk and partition GUIDs from the disk image itself (with GUIDs initially all-zero) 2018-10-15 00:29:57 +02:00
Makefile.test-example-os Split the Makefile into three parts (build framework, os-specific build recipes, tests) 2018-10-02 03:19:00 +02:00
README.md Started describing a Guix build environment 2018-10-15 00:29:54 +02:00
travis-deploy-key-id_rsa.enc Disabled display of commands as they risk leaking Travis OpenSSL key and IV, fixed typo 2018-07-02 20:53:36 +02:00

Travis test harness for hobby operating systems

The guix.scm file is a build recipe for os-test-framework, for the Guix package manager. This file is released under the GNU GPL version 3 or later, because it calls other recipies and library functions which are under the GPL. Other files (with the exception of guix.scm-gpl-license and LICENSE.txt) are released using the CC0 public domain dedication.

This Travis configuration runs an operating system in various emulators. It can execute a SikuliX test script to ensure that some elements are visible on-screen, send keystrokes and mouse events, and interact with the OS GUI in an automated way. Finally, it will take screenshots of the operating system, and upload them to a separate repository hosting these artifacts.

Below are screenshots of an example operating system. This example merely displays a gradient and does not process any user input.

QEMU (floppy disk)

Latest screenshot of the operating system running in QEMU, booted as a floppy disk

QEMU (CD-ROM)

Latest screenshot of the operating system running in QEMU, booted as a CD-ROM

VirtualBox

Latest screenshot of the operating system running in VirtualBox

Bochs

Latest screenshot of the operating system running in Bochs

DOSBox (.bat)

Latest screenshot of the operating system running in dosbox

Unix graphical environment (.sh)

Latest screenshot of the operating system running in gui-sh