Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ci
Path: blob/main/jobs/FreeBSD-main-amd64-test_ltp/build.sh
1130 views
1
#!/bin/sh
2
3
export TARGET=amd64
4
export TARGET_ARCH=amd64
5
6
# modified freebsd-ci/scripts/test/run-tests.sh:
7
8
SSL_CA_CERT_FILE=/usr/local/share/certs/ca-root-nss.crt
9
10
if [ -z "${GIT_COMMIT}" ]; then
11
echo "No git commit id specified"
12
exit 1
13
fi
14
15
ARTIFACT_SERVER=${ARTIFACT_SERVER:-artifact.ci.freebsd.org}
16
ARTIFACT_SUBDIR=snapshot/${FBSD_BRANCH}/${GIT_COMMIT}/${TARGET}/${TARGET_ARCH}
17
IMG_NAME=disk-test.img
18
JOB_DIR=freebsd-ci/jobs/${JOB_NAME}
19
TEST_BASE=freebsd-ci/scripts/test
20
21
TIMEOUT_MS=${BUILD_TIMEOUT:-5400000}
22
TIMEOUT=$((${TIMEOUT_MS} / 1000))
23
TIMEOUT_EXPECT=$((${TIMEOUT} - 60))
24
TIMEOUT_VM=$((${TIMEOUT_EXPECT} - 120))
25
26
METADIR=meta
27
METAOUTDIR=meta-out
28
29
TEST_VM_MEMORY=8192m
30
31
fetch https://${ARTIFACT_SERVER}/${ARTIFACT_SUBDIR}/${IMG_NAME}.zst
32
zstd --rm -fd ${IMG_NAME}.zst
33
34
# prepare meta disk to pass information to testvm
35
rm -fr ${METADIR}
36
mkdir ${METADIR}
37
cp -R ${JOB_DIR}/${METADIR}/ ${METADIR}/
38
for i in ${USE_TEST_SUBR}; do
39
cp ${TEST_BASE}/subr/${i} ${METADIR}/
40
done
41
touch ${METADIR}/auto-shutdown
42
sh -ex ${TEST_BASE}/create-meta.sh
43
44
# run test VM image with bhyve
45
FBSD_BRANCH_SHORT=`echo ${FBSD_BRANCH} | sed -e 's,.*-,,'`
46
TEST_VM_NAME="testvm-${FBSD_BRANCH_SHORT}-${TARGET_ARCH}-${BUILD_NUMBER}"
47
sudo /usr/sbin/bhyvectl --vm=${TEST_VM_NAME} --destroy || true
48
sudo /usr/sbin/bhyveload -c stdio -m ${TEST_VM_MEMORY} -d ${IMG_NAME} ${TEST_VM_NAME}
49
set +e
50
expect -c "set timeout ${TIMEOUT_EXPECT}; \
51
spawn sudo /usr/bin/timeout -k 60 ${TIMEOUT_VM} /usr/sbin/bhyve \
52
-c 2 -m ${TEST_VM_MEMORY} -H -P \
53
-s 0:0,hostbridge \
54
-s 1:0,lpc \
55
-s 2:0,virtio-blk,${IMG_NAME} \
56
-s 3:0,virtio-blk,meta.tar \
57
-l com1,stdio \
58
${TEST_VM_NAME}; \
59
expect { eof }"
60
rc=$?
61
echo "bhyve return code = $rc"
62
sudo /usr/sbin/bhyvectl --vm=${TEST_VM_NAME} --destroy
63
64
sh -ex ${TEST_BASE}/extract-meta.sh
65
sh -ex ${TEST_BASE}/ltp2junit.sh ${METAOUTDIR}/ltp-results.log test-report.xml
66
rm -f ${IMG_NAME}
67
68