@ -2,10 +2,10 @@
#
# SPDX-License-Identifier: LicenseRef-Hippocratic-1.1
{ p kgs, lib }:
{ testPkgs, hostP kgs, lib }:
let
testDriver = with pkgs. buildPackage s;
testDriver = with hostPkg s;
stdenv . mkDerivation {
name = " g e n o d e - t e s t - d r i v e r " ;
@ -23,7 +23,7 @@ let
} ;
runTests = driver :
p kgs. stdenv . mkDerivation {
hostP kgs. stdenv . mkDerivation {
name = " t e s t - r u n - ${ driver . testName } " ;
buildCommand = ''
@ -39,7 +39,7 @@ let
makeTest = { testScript , testConfig , name ? " u n a m e d " , . . . } @ t :
let
baseSetup = with p kgs; ''
baseSetup = with testP kgs; ''
file link - s core $ { depot . base-linux } /bin/core
file link - s timer $ { depot . base-linux } /bin/timer
file link - s ld . lib . so $ { depot . base-linux } /lib/ld.lib.so
@ -48,22 +48,23 @@ let
file link - s test . config $ env ( testConfig )
'' ;
driver = pkgs . buildPackages . runCommand " g e n o d e - t e s t - d r i v e r - ${ name } " {
buildInputs = with pkgs . buildPackages ; [ makeWrapper expect ] ;
inherit baseSetup testConfig testScript ;
preferLocalBuild = true ;
testName = name ;
} ''
mkdir - p $ out/bin
echo " $ t e s t C o n f i g " > $ out/test.config
echo " $ t e s t S c r i p t " > $ out/test-script
echo " $ b a s e S e t u p " > $ out/base-setup
ln - s $ { testDriver } /bin/genode-test-driver $ out/bin /
wrapProgram $ out/bin/genode-test-driver \
- - run " e x p o r t t e s t C o n f i g = \" $ t e s t C o n f i g \" " \
- - run " e x p o r t t e s t S c r i p t = \" \$ ( c a t $ o u t / t e s t - s c r i p t ) \" " \
- - run " e x p o r t b a s e S e t u p = \" \$ ( c a t $ o u t / b a s e - s e t u p ) \" " \
'' ;
driver = with hostPkgs ;
runCommand " g e n o d e - t e s t - d r i v e r - ${ name } " {
buildInputs = [ makeWrapper expect ] ;
inherit baseSetup testConfig testScript ;
preferLocalBuild = true ;
testName = name ;
} ''
mkdir - p $ out/bin
echo " $ t e s t C o n f i g " > $ out/test.config
echo " $ t e s t S c r i p t " > $ out/test-script
echo " $ b a s e S e t u p " > $ out/base-setup
ln - s $ { testDriver } /bin/genode-test-driver $ out/bin /
wrapProgram $ out/bin/genode-test-driver \
- - run " e x p o r t t e s t C o n f i g = \" $ t e s t C o n f i g \" " \
- - run " e x p o r t t e s t S c r i p t = \" \$ ( c a t $ o u t / t e s t - s c r i p t ) \" " \
- - run " e x p o r t b a s e S e t u p = \" \$ ( c a t $ o u t / b a s e - s e t u p ) \" " \
'' ;
passMeta = drv :
drv
@ -74,5 +75,9 @@ let
in test // { inherit driver test ; } ;
in {
callTest = path : args : makeTest ( import path ( { inherit pkgs lib ; } // args ) ) ;
callTest = path : args :
makeTest ( import path ( {
pkgs = testPkgs ;
inherit lib ;
} // args ) ) ;
}