mirror of https://github.com/CIRCL/Circlean
Merge branch 'tests'
commit
4560bccbc6
|
@ -0,0 +1,39 @@
|
|||
Expectations
|
||||
============
|
||||
|
||||
Having a way to run after each commit a test on a list of samples and check if
|
||||
the output and the logs are the ones expected by.
|
||||
Easy way to check it on the rPi itself before releases.
|
||||
|
||||
|
||||
What to think about
|
||||
===================
|
||||
|
||||
* Exhaustive list of files, edge cases
|
||||
* Check the logfiles
|
||||
|
||||
Ideas
|
||||
=====
|
||||
|
||||
Source keys:
|
||||
- Working documents, one / multiple partitions
|
||||
- Non working documents: one / multiple partitions
|
||||
- different FS on different partitions
|
||||
- Non working FS
|
||||
- Malicious documents (very slow, might break the conversions)
|
||||
|
||||
Destinations keys
|
||||
- empty, big enough
|
||||
- empty, too small
|
||||
- broken
|
||||
- not empty
|
||||
- unmountable (wrong/broken fs)
|
||||
|
||||
|
||||
|
||||
Things to try out
|
||||
=================
|
||||
|
||||
|
||||
Run the image in qemu, process USB keys from there
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
# Doc: http://wiki.osdev.org/Loopback_Device
|
||||
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
# User
|
||||
#FS_EXT='ext2 ext3 ext4'
|
||||
FS_VFAT='vfat'
|
||||
#FS_NTFS='ntfs'
|
||||
SIZE_MB='128'
|
||||
|
||||
# System
|
||||
FS="${FS_EXT} ${FS_VFAT} ${FS_NTFS}"
|
||||
|
||||
|
||||
for f in $FS; do
|
||||
# Create files of 128Mb
|
||||
OUT_NAME_NORM="testcase."${f}
|
||||
OUT_NAME_PART="testcase.part."${f}
|
||||
dd if=/dev/zero of=${OUT_NAME_NORM} bs=516096c count=200
|
||||
dd if=/dev/zero of=${OUT_NAME_PART} bs=516096c count=200
|
||||
parted -s ${OUT_NAME_NORM} mklabel msdos
|
||||
parted -s ${OUT_NAME_PART} mklabel msdos
|
||||
if [ $f = ${FS_VFAT} ]; then
|
||||
parted -s ${OUT_NAME_PART} mkpart primary 8192s 122879s
|
||||
parted -s ${OUT_NAME_PART} mkpart primary 122880s 201599s
|
||||
parted -s ${OUT_NAME_NORM} mkpart primary 8192s 201599s
|
||||
lo=`losetup -f`
|
||||
losetup -o$((8192 * 512)) ${lo} ${OUT_NAME_PART}
|
||||
mkfs.${f} ${lo} 57344
|
||||
losetup -d ${lo}
|
||||
losetup -o$((122880 * 512)) ${lo} ${OUT_NAME_PART}
|
||||
mkfs.${f} ${lo} 39360
|
||||
losetup -d ${lo}
|
||||
losetup -o$((8192 * 512)) ${lo} ${OUT_NAME_NORM}
|
||||
mkfs.${f} ${lo}
|
||||
losetup -d ${lo}
|
||||
elif [ $f = ${FS_NTFS} ]; then
|
||||
mk${f} -f -F ${OUT_NAME}
|
||||
else
|
||||
mkfs.${f} -F ${OUT_NAME}
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
#!/usr/bin/expect -f
|
||||
|
||||
set timeout -1
|
||||
|
||||
spawn qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb \
|
||||
-watchdog i6300esb -watchdog-action poweroff \
|
||||
-serial stdio -append "root=/dev/sdc2 panic=1 rootfstype=ext4 ro console=ttyAMA0 console=ttyS0" \
|
||||
-drive file=[lindex $argv 1],index=0,media=disk \
|
||||
-drive file=[lindex $argv 2],index=1,media=disk \
|
||||
-drive file=[lindex $argv 0],index=2,media=disk \
|
||||
-vnc 0.0.0.0:1 \
|
||||
-serial stdio \
|
||||
-soundhw all \
|
||||
-chardev stdio,id=mon0 -mon chardev=mon0,mode=readline \
|
||||
-chardev socket,id=mon1,host=localhost,port=4444,server,nowait \
|
||||
-mon chardev=mon1,mode=control,pretty=on
|
||||
|
||||
expect "System halted."
|
||||
|
||||
send "quit\n"
|
|
@ -0,0 +1,57 @@
|
|||
#!/bin/bash
|
||||
|
||||
# http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/
|
||||
|
||||
IMAGE='../2014-01-07-wheezy-raspbian.img'
|
||||
OFFSET_ROOTFS=$((122880 * 512))
|
||||
|
||||
IMAGE_VFAT_NORM="testcase.vfat"
|
||||
OFFSET_VFAT_NORM=$((8192 * 512))
|
||||
|
||||
IMAGE_VFAT_PART="testcase.part.vfat"
|
||||
OFFSET_VFAT_PART1=$((8192 * 512))
|
||||
OFFSET_VFAT_PART2=$((122880 * 512))
|
||||
|
||||
IMAGE_DEST="testcase_dest.vfat"
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "This script must be run as root" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
SETUP_DIR="setup"
|
||||
|
||||
clean(){
|
||||
mount -o loop,offset=${OFFSET_ROOTFS} ${IMAGE} ${SETUP_DIR}
|
||||
mv ${SETUP_DIR}/etc/ld.so.preload_bkp ${SETUP_DIR}/etc/ld.so.preload
|
||||
umount ${SETUP_DIR}
|
||||
rm -rf ${SETUP_DIR}
|
||||
}
|
||||
|
||||
trap clean EXIT TERM INT
|
||||
|
||||
mkdir -p ${SETUP_DIR}
|
||||
|
||||
# make the CIRCLean image compatible with qemu
|
||||
mount -o loop,offset=${OFFSET_ROOTFS} ${IMAGE} ${SETUP_DIR}
|
||||
mv ${SETUP_DIR}/etc/ld.so.preload ${SETUP_DIR}/etc/ld.so.preload_bkp
|
||||
umount ${SETUP_DIR}
|
||||
|
||||
# Prepare the test source key
|
||||
mount -o loop,offset=${OFFSET_VFAT_NORM} ${IMAGE_VFAT_NORM} ${SETUP_DIR}
|
||||
cp content_img_vfat_norm/* ${SETUP_DIR}
|
||||
umount ${SETUP_DIR}
|
||||
# Prepare the test source key (with partitions)
|
||||
mount -o loop,offset=${OFFSET_VFAT_PART1} ${IMAGE_VFAT_PART} ${SETUP_DIR}
|
||||
cp content_img_vfat_part1/* ${SETUP_DIR}
|
||||
umount ${SETUP_DIR}
|
||||
mount -o loop,offset=${OFFSET_VFAT_PART2} ${IMAGE_VFAT_PART} ${SETUP_DIR}
|
||||
cp content_img_vfat_part2/* ${SETUP_DIR}
|
||||
umount ${SETUP_DIR}
|
||||
|
||||
./run.exp ${IMAGE} ${IMAGE_VFAT_NORM} ${IMAGE_DEST}
|
||||
#./run.exp ${IMAGE} ${IMAGE_VFAT_PART} ${IMAGE_DEST}
|
||||
|
Loading…
Reference in New Issue