Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F146900070
D51263.1781471274.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
D51263.1781471274.diff
View Options
diff --git a/tests/ci/Makefile b/tests/ci/Makefile
--- a/tests/ci/Makefile
+++ b/tests/ci/Makefile
@@ -28,6 +28,7 @@
KERNCONF?= GENERIC
LOCALBASE?= /usr/local
EXTRA_MAKE_FLAGS?=
+SU_CMD?= /usr/bin/su root -c
.if !defined(TARGET) || empty(TARGET)
TARGET= ${MACHINE}
@@ -72,17 +73,18 @@
CIIMAGE= ci-${OSRELEASE}-${GITREV}-${KERNCONF}.${FORMAT}
CIDISK?= ${.OBJDIR}/${CIIMAGE}
VMSIZE?= 6g
+KYUA_TEST_FILTERS?=
CITYPE?= full
-META_TAR!=mktemp /tmp/meta.XXXXXX
-META_DIR!=mktemp -d /tmp/meta.XXXXXX
-META_DIROUT!=mktemp -d /tmp/meta.XXXXXX
-DISC_CAM!=truncate -s 128m /tmp/disk-cam
+.if !defined(META_TAR)
+META_TAR!= mktemp /tmp/freebsdci_report.tar.XXXXXX
+META_DIR!= mktemp -d /tmp/freebsdci_meta.XXXXXX
+META_DIROUT!= mktemp -d /tmp/freebsdci_report.XXXXXX
+.endif
EXTRA_DISK_NUM?=5
DISK_NUMBERS!=jot - 1 ${EXTRA_DISK_NUM}
BHYVE_EXTRA_DISK_PARAM?=
BHYVE_EXTRA_DISK_PARAM+=-s 4:0,ahci-hd,/tmp/disk-cam
.for i in ${DISK_NUMBERS}
-NEW_DISK!=truncate -s 128m /tmp/disk${i}
BHYVE_EXTRA_DISK_PARAM+=-s $$((${i} + 4)):0,virtio-blk,/tmp/disk${i}
CLEANFILES+=/tmp/disk${i}
.endfor
@@ -134,9 +136,10 @@
.endif
CLEANFILES+= ${.OBJDIR}/${CIIMAGE} ${.OBJDIR}/ci.img ${META_TAR}
-CLEANDIRS+= ${.OBJDIR}/ci-buildimage
+IMAGEDIR= ${.OBJDIR}/ci-buildimage
+CLEANDIRS+= ${IMAGEDIR}
-portinstall: portinstall-pkg portinstall-qemu portinstall-expect portinstall-${TARGET_ARCH:tl} .PHONY
+portinstall: portinstall-qemu portinstall-expect portinstall-${TARGET_ARCH:tl} .PHONY
portinstall-pkg: .PHONY
.if !exists(/usr/local/sbin/pkg-static)
@@ -157,7 +160,7 @@
.endif
beforeclean: .PHONY
- chflags -R noschg ${.OBJDIR}/${.TARGET}
+ chflags -R noschg ${IMAGEDIR}
.include <bsd.obj.mk>
clean: beforeclean .PHONY
@@ -171,8 +174,7 @@
${EXTRA_MAKE_FLAGS} buildworld > ${.CURDIR}/_.${TARGET_ARCH}.${.TARGET} 2>&1 || \
(echo "${.TARGET} failed, check _.${TARGET_ARCH}.${.TARGET} for details" ; false)
-
-ci-buildkernel: ci-buildworld-${TARGET_ARCH:tl} .PHONY
+ci-buildkernel: .PHONY
@echo "Building kernel for ${TARGET_ARCH}"
${IMAKE} -j${PARALLEL_JOBS} -C ${WORLDDIR} ${METAMODE} \
${CROSS_TOOLCHAIN_PARAM} __MAKE_CONF=${MAKECONF} SRCCONF=${SRCCONF} \
@@ -180,7 +182,7 @@
buildkernel > ${.CURDIR}/_.${TARGET_ARCH}.${.TARGET} 2>&1 || \
(echo "${.TARGET} failed, check _.${TARGET_ARCH}.${.TARGET} for details" ; false)
-ci-buildimage: ${QEMUTGT} ci-buildkernel-${TARGET_ARCH:tl} .PHONY
+ci-buildimage: ${QEMUTGT} .PHONY
@echo "Building ci image for ${TARGET_ARCH}"
mkdir -p ${.OBJDIR}/${.TARGET}
env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} SWAPSIZE=${SWAPSIZE} \
@@ -205,11 +207,20 @@
ci-extract-meta: .PHONY
tar xfv ${META_TAR} -C ${META_DIROUT}
+ rm -rf ${META_TAR} ${META_DIR}
@echo "Extracted kyua reports to ${META_DIROUT}"
+ci-run-escalated: .PHONY
+ echo "===> Switching to root credentials to run privilege escalated CI tasks."
+ ${SU_CMD} "${IMAKE} -C ${.CURDIR} META_TAR=${META_TAR} META_DIR=${META_DIR} META_DIROUT=${META_DIROUT} ci-runtest-${TARGET_ARCH}"
+ echo "===> Returning to user credentials."
+
ci-runtest: ci-buildimage-${TARGET_ARCH:tl} portinstall .PHONY
.if ${MACHINE} == "amd64" && ( ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" ) && ( !defined(USE_QEMU) || empty(USE_QEMU) )
/usr/sbin/bhyvectl --vm=${TEST_VM_NAME} --destroy || true
+.for i in ${DISK_NUMBERS} -cam
+ truncate -s 128m /tmp/disk${i}
+.endfor
expect -c "set timeout ${TIMEOUT_EXPECT}; \
spawn /usr/bin/timeout -k 5s 30s /usr/sbin/bhyveload \
-c stdio -m ${VM_MEM_SIZE} -d ${CIDISK} ${TEST_VM_NAME}; \
@@ -252,10 +263,10 @@
@echo "Error: ${TARGET_ARCH} is not supported on ${TYPE} ${REVISION} ${BRANCH}"
.endif
-ci-smoke: ci-set-smoke-var ci-create-meta ci-checktarget .WAIT ci-runtest-${TARGET_ARCH:tl} .PHONY
+ci-smoke: ci-set-smoke-var ci-create-meta ci-checktarget .WAIT ci-run-escalated .PHONY
-ci-full: ci-set-full-var ci-create-meta ci-checktarget .WAIT ci-runtest-${TARGET_ARCH:tl} ci-extract-meta .PHONY
+ci-full: ci-set-full-var ci-create-meta ci-checktarget .WAIT ci-run-escalated .WAIT ci-extract-meta .PHONY
-ci: ci-${CITYPE:tl} .PHONY
+ci: ci-buildworld-${TARGET_ARCH:tl} ci-buildkernel-${TARGET_ARCH:tl} ci-${CITYPE:tl} .PHONY
.include "${RELEASEDIR}/Makefile.inc1"
diff --git a/tests/ci/tools/ci.conf b/tests/ci/tools/ci.conf
--- a/tests/ci/tools/ci.conf
+++ b/tests/ci/tools/ci.conf
@@ -11,11 +11,31 @@
export VM_RC_LIST="auditd freebsdci"
if [ "${CITYPE}" != "smoke" ]; then
-export VM_EXTRA_PACKAGES="coreutils devel/py-pytest gdb jq ksh93 net/py-dpkt net/scapy nist-kat nmap perl5 python python3 sudo sysutils/porch tcptestsuite"
-
- if [ "${TARGET}" = "amd64" ]; then
- export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} linux-c7-ltp"
- fi
+export VM_EXTRA_PACKAGES="
+archivers/gtar
+devel/git
+devel/gdb
+devel/py-pytest
+perl5
+lang/python
+lang/python3
+net/isc-dhcp44-server
+net/ndisc6
+net/py-dpkt
+net/scapy
+net/tcptestsuite
+security/nist-kat
+security/nmap
+security/openvpn
+security/sudo
+shells/ksh93
+sysutils/coreutils
+sysutils/porch
+sysutils/sg3_utils
+textproc/jq
+"
+# TODO waiting on packages to show up on 15-CURRENT
+#export VM_EXTRA_PACKAGES="${VM_EXTRA_PACKAGES} filesystems/ext2"
fi
vm_extra_pre_umount() {
@@ -37,39 +57,47 @@
test_suites.FreeBSD.cam_test_device = '/dev/ada0'
test_suites.FreeBSD.disks = '/dev/vtbd2 /dev/vtbd3 /dev/vtbd4 /dev/vtbd5 /dev/vtbd6'
EOF
-cat << EOF >> ${DESTDIR}/etc/rc.conf
kld_list="" # Load modules needed by tests
+kld_list="${kld_list} accf_data" # sys/kern/socket_accf
+kld_list="${kld_list} accf_dns" # sys/kern/socket_accf
+kld_list="${kld_list} accf_http" # sys/kern/socket_accf
+kld_list="${kld_list} accf_tls" # sys/kern/socket_accf
kld_list="${kld_list} blake2" # sys/opencrypto
+kld_list="${kld_list} carp" # sys/netinet/carp
kld_list="${kld_list} cryptodev" # sys/opencrypto
kld_list="${kld_list} dummymbuf" # sys/netpfil
+kld_list="${kld_list} dummynet" # sys/netpfil/common
kld_list="${kld_list} fusefs" # sys/fs/fusefs
+kld_list="${kld_list} if_bridge" # sys/net/if_bridge_test
+kld_list="${kld_list} if_enc" # sys/netpfil/pf
+kld_list="${kld_list} if_epair" # sys/net/if_epair_test
+kld_list="${kld_list} if_ovpn" # sys/net/if_ovpn
+kld_list="${kld_list} if_stf" # sys/net/if_stf
+kld_list="${kld_list} ipdivert" # sys/netinet (loads ipdivert)
+kld_list="${kld_list} ipfw" # sys/netpfil/ipfw (loads ipfw)
+kld_list="${kld_list} ipfw_nat" # sys/netpfil/ipfw (loads ipfw_nat)
+kld_list="${kld_list} ipl" # sys/sbin/ipf (loads ipfilter)
kld_list="${kld_list} ipsec" # sys/netipsec
+kld_list="${kld_list} mac_ipacl" # sys/mac/ipacl
kld_list="${kld_list} mac_portacl" # sys/mac/portacl
kld_list="${kld_list} mqueuefs" # sys/kern/mqueue_test
+kld_list="${kld_list} pf" # sys/netpfil/pf
+kld_list="${kld_list} pflog" # sys/netpfil/pf
+kld_list="${kld_list} pflow" # sys/netpfil/pf
kld_list="${kld_list} pfsync" # sys/netpfil/pf (loads pf)
-kld_list="${kld_list} pflog" # sys/netpfil/pf
-kld_list="${kld_list} ipl" # sys/sbin/ipf (loads ipfilter)
-kld_list="${kld_list} ipfw" # sys/netpfil/ipfw (loads ipfw)
-kld_list="${kld_list} ipfw_nat" # sys/netpfil/ipfw (loads ipfw_nat)
-kld_list="${kld_list} ipdivert" # sys/netinet (loads ipdivert)
-kld_list="${kld_list} dummynet" # sys/netpfil/common
-kld_list="${kld_list} carp" # sys/netinet/carp
-kld_list="${kld_list} if_stf" # sys/net/if_stf
-background_fsck="NO"
-sendmail_enable="NONE"
-cron_enable="NO"
-syslogd_enable="NO"
-newsyslog_enable="NO"
-EOF
-if [ "${CITYPE}" = "smoke" ]; then
-cat << EOF >> ${DESTDIR}/etc/rc.conf
-freebsdci_type="smoke"
-EOF
-elif [ "${CITYPE}" = "full" ]; then
-cat << EOF >> ${DESTDIR}/etc/rc.conf
-freebsdci_type="full"
-EOF
-fi
+kld_list="${kld_list} sctp" # sys/netpfil/pf
+kld_list="${kld_list} tarfs" # sys/fs/tarfs
+kld_list="${kld_list} tcpmd5" # sys/netinet
+sysrc -f ${DESTDIR}/etc/rc.conf \
+ kld_list="${kld_list}" \
+ background_fsck="NO" \
+ sendmail_enable="NONE" \
+ cron_enable="NO" \
+ syslogd_enable="NO" \
+ newsyslog_enable="NO" \
+ freebsdci_type="${CITYPE}" \
+ freebsdci_test_filters="${KYUA_TEST_FILTERS}"
+
cat << EOF >> ${DESTDIR}/etc/sysctl.conf
kern.cryptodevallowsoft=1
kern.ipc.tls.enable=1
diff --git a/tests/ci/tools/freebsdci b/tests/ci/tools/freebsdci
--- a/tests/ci/tools/freebsdci
+++ b/tests/ci/tools/freebsdci
@@ -25,9 +25,6 @@
. /etc/rc.subr
-: ${freebsdci_enable:="NO"}
-: ${freebsdci_type:="full"}
-
name="freebsdci"
desc="Run FreeBSD CI"
rcvar=freebsdci_enable
@@ -39,6 +36,12 @@
metadir=/meta
istar=$(file -s ${tardev} | grep "POSIX tar archive" | wc -l)
+load_rc_config $name
+: ${freebsdci_enable:="NO"}
+: ${freebsdci_type:="full"}
+: ${freebsdci_test_filters:=""}
+PATH="${PATH}:/usr/local/sbin:/usr/local/bin"
+
auto_shutdown()
{
# NOTE: Currently RISC-V kernels lack the ability to
@@ -75,7 +78,9 @@
tar xvf ${tardev} -C ${metadir}
cd /usr/tests
set +e
- kyua -v parallelism=${parallelism} test
+ kyua \
+ -v parallelism=${parallelism} \
+ test ${freebsdci_test_filters}
rc=$?
set -e
if [ ${rc} -ne 0 ] && [ ${rc} -ne 1 ]; then
@@ -105,5 +110,4 @@
auto_shutdown
}
-load_rc_config $name
run_rc_command "$1"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Jun 14, 9:07 PM (9 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28901842
Default Alt Text
D51263.1781471274.diff (8 KB)
Attached To
Mode
D51263: tests/ci: fix minor bugs and unskip more tests
Attached
Detach File
Event Timeline
Log In to Comment