• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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