1name: C/C++ CI 2 3on: 4 push: 5 branches: 6 - master 7 - exfat-next 8 pull_request: 9 branches: 10 - master 11 - exfat-next 12 13jobs: 14 build: 15 16 runs-on: ubuntu-latest 17 18 steps: 19 - uses: actions/checkout@v4 20 - name: before test 21 run: | 22 sudo apt-get install linux-headers-$(uname -r) xz-utils \ 23 gcc-mips-linux-gnu qemu-system-mips \ 24 qemu-user 25 git clone https://github.com/namjaejeon/linux-exfat-oot 26 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH 27 export PATH=/usr/local/lib:$PATH 28 - name: build test & install exfatprogs 29 run: | 30 ./autogen.sh > /dev/null 31 ./configure > /dev/null 32 make -j$((`nproc`+1)) > /dev/null 33 sudo make install > /dev/null 34 make distclean > /dev/null 35 ./configure --host=mips-linux-gnu CFLAGS=--static > /dev/null 36 make -j$((`nproc`+1)) > /dev/null 37 - name: run fsck repair testcases 38 run: | 39 cd tests 40 export FSCK1="qemu-mips ../fsck/fsck.exfat" 41 export FSCK2="fsck.exfat" 42 sudo -E ./test_fsck.sh 43 export FSCK1="fsck.exfat" 44 export FSCK2="qemu-mips ../fsck/fsck.exfat" 45 sudo -E ./test_fsck.sh 46 - name: create file/director test 47 run: | 48 cd linux-exfat-oot 49 make > /dev/null 50 sudo make install > /dev/null 51 sudo modprobe exfat 52 sudo mkdir -p /mnt/test 53 cd .. 54 truncate -s 10G test.img 55 sudo losetup /dev/loop22 test.img 56 sudo mkfs.exfat /dev/loop22 57 sudo mount -t exfat /dev/loop22 /mnt/test/ 58 cd /mnt/test/ 59 i=1;while [ $i -le 10000 ];do sudo touch file$i;if [ $? != 0 ]; then exit 1; fi; i=$(($i + 1));done 60 sync 61 sudo rm -rf * 62 i=1;while [ $i -le 10000 ];do sudo mkdir dir$i;if [ $? != 0 ]; then exit 1; fi; i=$(($i + 1));done 63 sync 64 sudo rm -rf * 65 i=1;while [ $i -le 10000 ];do sudo touch file$i;if [ $? != 0 ]; then exit 1; fi; i=$(($i + 1));done 66 i=1;while [ $i -le 10000 ];do sudo mkdir dir$i;if [ $? != 0 ]; then exit 1; fi; i=$(($i + 1));done 67 sync 68 sudo fsck.exfat /dev/loop22 69 sudo find . -delete 70 sudo fsck.exfat /dev/loop22 71 cd - 72