Merge pull request #232159 from tomodachi94/enhance/craftos-pc/add-tests

This commit is contained in:
Ben Siraphob 2023-06-27 17:41:57 +07:00 committed by GitHub
commit 834bfd48c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 64 additions and 0 deletions

View File

@ -1,6 +1,7 @@
{ lib
, stdenv
, fetchFromGitHub
, callPackage
, patchelf
, unzip
, poco
@ -59,6 +60,11 @@ stdenv.mkDerivation rec {
cp -R ${craftos2-rom}/* $out/share/craftos
'';
passthru.tests = {
eval-hello-world = callPackage ./test-eval-hello-world { };
eval-periphemu = callPackage ./test-eval-periphemu { };
};
meta = with lib; {
description = "An implementation of the CraftOS-PC API written in C++ using SDL";
homepage = "https://www.craftos-pc.cc";

View File

@ -0,0 +1,18 @@
{ stdenv
, craftos-pc
, grep
}:
stdenv.mkDerivation {
name = "craftos-pc-test-eval-hello-world";
meta.timeout = 60;
nativeBuildInputs = [ craftos-pc grep ];
buildCommand = ''
export HOME=$(pwd)
mkdir $HOME/.local $HOME/.config
export XDG_CONFIG_DIR=$HOME/.config
export XDG_DATA_DIR=$HOME/.local
craftos --headless --script ${./init.lua} | grep "Hello Nixpkgs!" > /dev/null
touch $out
'';
}

View File

@ -0,0 +1,3 @@
print("Hello Nixpkgs!")
shell.run("shutdown")

View File

@ -0,0 +1,19 @@
{ stdenv
, craftos-pc
, grep
}:
stdenv.mkDerivation {
name = "craftos-pc-test-eval-periphemu";
meta.timeout = 60;
nativeBuildInputs = [ craftos-pc grep ];
buildCommand = ''
export HOME=$(pwd)
mkdir $HOME/.local $HOME/.config
export XDG_CONFIG_DIR=$HOME/.config
export XDG_DATA_DIR=$HOME/.local
if craftos --headless --script ${./init.lua} | grep -q "FAIL"; then
exit 1
fi
touch $out
'';
}

View File

@ -0,0 +1,18 @@
local function assert(cond1, cond2)
if not cond1 == cond2 then print("FAIL") end
end
local function driveTests()
periphemu.create("left", "drive")
local p = peripheral.wrap("left")
assert(p.isDiskPresent(), false)
p.insertDisk(649)
assert(p.isDiskPresent(), true)
assert(p.getDiskID(), 649)
assert(p.getDiskLabel(), nil)
end
driveTests()
shell.run("shutdown")