# file : tests/integration/testscript # license : MIT; see accompanying LICENSE file #\ # Requirement: # # 1. tftpd-hpa installed (assumed in /usr/sbin/in.tftpd) # # 2. b, bpkg, curl executables in PATH. # # TFTP server (tftpd-hpa) setup: from the test out_base, run (sudo is required # for --secure/chroot): # sudo /usr/sbin/in.tftpd \ --foreground \ --address 127.0.0.1:55123 \ --user "$(whoami)" \ --permissive \ --create \ --secure \ --map-file tftp-map \ "$(pwd)" #\ machine = linux-gcc target = x86_64-linux-gnu environment = c = gcc cxx = g++ # Where we get the task and what we do with the result can be configured # independently: # # - We can poll a controller for a task by specifying its URL or we can # read a task manifest from a file (--fake-request). # # - We can send the result back to the controller or we can dump the result # to stdout (--dump-result). # #\ wait = 5 # Seconds. controller = https://stage.build2.org/?build-task #\ wait = 1 # Seconds. controller = --fake-request ../task --dump-result pkg = libhello ver = 1.0.0+7 #rep_url = "https://git.build2.org/hello/libhello.git#1.0" #rep_type = git rep_url = https://stage.build2.org/1 rep_type = pkg rfp = yes #\ pkg = hello ver = 1.0.0+6 rep_url = "https://git.build2.org/hello/hello.git" rep_type = git rfp = yes #\ #\ pkg = libstudxml ver = 1.1.0-b.9.20210202082911.e729667b0f34 rep_url = https://stage.build2.org/1 rep_type = pkg rfp = yes #\ # To make sure that the test-installed phase succeeds use the build2 driver # installed into a writable directory, for example, ~/install/bin. # #\ pkg = libbuild2-hello ver = 0.1.0-a.0.20210825084014.eb3be1879362 rep_url = "https://github.com/build2/libbuild2-hello.git#master" rep_type = git #rep_url = https://stage.build2.org/1 #rep_type = pkg rfp = yes tests="tests: * libbuild2-hello-tests == $ver" host='host: true' #\ # Use the build2 driver installed into ~/install/bin (see above). # #\ pkg = libbuild2-kconfig ver = 0.1.0-a.0.20210825082040.000d8026a71f rep_url = "https://github.com/build2/libbuild2-kconfig.git#master" rep_type = git #ver = 0.1.0-a.0.20200910053253.a71aa3f3938b #rep_url = https://stage.build2.org/1 #rep_type = pkg rfp = yes requires='requires: bootstrap' tests="tests: * libbuild2-kconfig-tests == $ver examples: * kconfig-hello == $ver" host='host: true' #\ #\ pkg = curl ver = 7.67.0+8 rep_url = https://pkg.cppget.org/1/testing rep_type = pkg rfp = yes #\ #\ pkg = cli ver = 1.2.0-b.7.20210809111954.1fa3edee47ff rep_url = "https://git.codesynthesis.com/cli/cli.git#adhoc-recipe" rep_type = git #rep_url = https://stage.build2.org/1 #rep_type = pkg rfp = yes requires='requires: host' tests="tests: * cli-tests == $ver examples: * cli-examples == $ver" host='host: true' #\ #\ pkg = libxsd ver = 4.2.0-b.1.20210915070740.6235e4148bd7 rep_url = "https://git.codesynthesis.com/xsd/xsd.git#test" rep_type = git #rep_url = https://stage.build2.org/1 #rep_type = pkg rfp = yes tests="tests: libxsd-tests == $ver" #\ #\ pkg = xsd ver = 4.2.0-b.1.20210915070740.6235e4148bd7 rep_url = "https://git.codesynthesis.com/xsd/xsd.git#test" rep_type = git #rep_url = https://queue.stage.build2.org/1 #rep_type = pkg rfp = yes requires='requires: host' tests="tests: * xsd-tests == $ver examples: * xsd-examples == $ver" host='host: true' #\ #\ pkg = libcmark-gfm-extensions ver = 0.29.0-a.1+7 rep_url = https://stage.build2.org/1 rep_type = pkg rfp = yes host='host: true' #\ #\ pkg = non-existing ver = 0.1.0 rep_url = https://stage.build2.org/1 rep_type = pkg rfp = yes #\ # Note that we also need to make sure that the installed package libraries are # properly imported when configuring and running tests, and that the installed # executables are runnable. # config = "bpkg.create:config.install.root=\"'$~/install'\" \ bpkg.configure.fetch:--fetch-timeout=60 \ bpkg.global.configure.build:--fetch-timeout=60 \ bpkg.create:config.bin.rpath=\"'$~/install/lib'\" \ config.cc.coptions=-Wall \ b.test-installed.configure:\"config.cc.loptions=-L'$~/install/lib'\" \ bpkg.test-separate-installed.create:\"config.cc.loptions=-L'$~/install/lib'\"" #interactive="interactive: bpkg.configure.build" #interactive="interactive: warning" +cat <<"EOI" >=task : 1 name: $pkg version: $ver repository-url: $rep_url repository-type: $rep_type trust: $rfp $requires $tests machine: $machine target: $target config: $config $interactive $host EOI +if ("$environment" != "") echo "environment: $environment" >+task end # # tftp = 127.0.0.1:55123 a = $0 + sed -e 's/-agent$/-worker/' <"$0" | set w : agent : { cat <<"EOI" >=machine-header; : 1 id: $machine-1.0 name: $machine summary: The $machine fake machine EOI $a --verbose 3 --tftp $~ --fake-machine machine-header $controller \ &build/*** >| 2>| } : worker : { env = ("$environment" != "" ? "$environment" : "default") cat <<"EOI" >=$env; #!/bin/sh t="\$1" shift exec "\$@" cc config.c=$c config.cxx=$cxx EOI chmod ugo+x $env; sleep $wait; $w --verbose 3 --startup --tftp-host $tftp --environments $~ \ &?build-module/*** &?build-host/*** &?build/*** \ &?build-installed/*** &?build-installed-bpkg/*** \ &?build-installed-bpkg-module/*** &?build-installed-bpkg-host/*** \ &?dist/*** &?redist/*** \ &?dist-installed/*** &?redist-installed/*** \ &task.manifest <| 2>| }