Lines Matching +full:- +full:qq
5 CFLAGS: -Werror
6 MAKEFLAGS: -j
11 runs-on: ubuntu-18.04
13 fail-fast: false
18 - uses: actions/checkout@v2
19 - name: install
22 sudo apt-get update -qq
23 sudo apt-get install -qq python3 python3-pip lcov
25 gcc --version
27 # setup a ram-backed disk to speed up reentrant tests
29 sudo mount -t tmpfs -o size=100m tmpfs disks
30 TESTFLAGS="$TESTFLAGS --disk=disks/disk"
33 mkdir -p coverage
34 TESTFLAGS="$TESTFLAGS --coverage=`
35 `coverage/${{github.job}}-${{matrix.arch}}.info"
39 # cross-compile with ARM Thumb (32-bit, little-endian)
40 - name: install-thumb
43 sudo apt-get install -qq \
44 gcc-arm-linux-gnueabi \
45 libc6-dev-armel-cross \
46 qemu-user
47 echo "CC=arm-linux-gnueabi-gcc -mthumb --static" >> $GITHUB_ENV
48 echo "EXEC=qemu-arm" >> $GITHUB_ENV
49 arm-linux-gnueabi-gcc --version
50 qemu-arm -version
51 # cross-compile with MIPS (32-bit, big-endian)
52 - name: install-mips
55 sudo apt-get install -qq \
56 gcc-mips-linux-gnu \
57 libc6-dev-mips-cross \
58 qemu-user
59 echo "CC=mips-linux-gnu-gcc --static" >> $GITHUB_ENV
60 echo "EXEC=qemu-mips" >> $GITHUB_ENV
61 mips-linux-gnu-gcc --version
62 qemu-mips -version
63 # cross-compile with PowerPC (32-bit, big-endian)
64 - name: install-powerpc
67 sudo apt-get install -qq \
68 gcc-powerpc-linux-gnu \
69 libc6-dev-powerpc-cross \
70 qemu-user
71 echo "CC=powerpc-linux-gnu-gcc --static" >> $GITHUB_ENV
72 echo "EXEC=qemu-ppc" >> $GITHUB_ENV
73 powerpc-linux-gnu-gcc --version
74 qemu-ppc -version
77 - name: test-example
79 sed -n '/``` c/,/```/{/```/d; p}' README.md > test.c
81 -Duser_provided_block_device_read=NULL \
82 -Duser_provided_block_device_prog=NULL \
83 -Duser_provided_block_device_erase=NULL \
84 -Duser_provided_block_device_sync=NULL \
85 -include stdio.h"
90 - name: test-default
93 make test TESTFLAGS+="-nrk"
95 - name: test-nor
98 make test TESTFLAGS+="-nrk \
99 -DLFS_READ_SIZE=1 -DLFS_BLOCK_SIZE=4096"
101 - name: test-emmc
104 make test TESTFLAGS+="-nrk \
105 -DLFS_READ_SIZE=512 -DLFS_BLOCK_SIZE=512"
107 - name: test-nand
110 make test TESTFLAGS+="-nrk \
111 -DLFS_READ_SIZE=4096 -DLFS_BLOCK_SIZE=\(32*1024\)"
113 - name: test-no-intrinsics
116 make test TESTFLAGS+="-nrk \
117 -DLFS_NO_INTRINSICS"
118 - name: test-byte-writes
119 # it just takes too long to test byte-level writes when in qemu,
124 make test TESTFLAGS+="-nrk \
125 -DLFS_READ_SIZE=1 -DLFS_CACHE_SIZE=1"
126 - name: test-block-cycles
129 make test TESTFLAGS+="-nrk \
130 -DLFS_BLOCK_CYCLES=1"
131 - name: test-odd-block-count
134 make test TESTFLAGS+="-nrk \
135 -DLFS_BLOCK_COUNT=1023 -DLFS_LOOKAHEAD_SIZE=256"
136 - name: test-odd-block-size
139 make test TESTFLAGS+="-nrk \
140 -DLFS_READ_SIZE=11 -DLFS_BLOCK_SIZE=704"
143 - name: upload-coverage
144 uses: actions/upload-artifact@v2
148 retention-days: 1
151 - name: results-code
153 mkdir -p results
157 -DLFS_NO_ASSERT \
158 -DLFS_NO_DEBUG \
159 -DLFS_NO_WARN \
160 -DLFS_NO_ERROR" \
161 CODEFLAGS+="-o results/code-${{matrix.arch}}.csv"
162 - name: results-code-readonly
164 mkdir -p results
168 -DLFS_NO_ASSERT \
169 -DLFS_NO_DEBUG \
170 -DLFS_NO_WARN \
171 -DLFS_NO_ERROR \
172 -DLFS_READONLY" \
173 CODEFLAGS+="-o results/code-${{matrix.arch}}-readonly.csv"
174 - name: results-code-threadsafe
176 mkdir -p results
180 -DLFS_NO_ASSERT \
181 -DLFS_NO_DEBUG \
182 -DLFS_NO_WARN \
183 -DLFS_NO_ERROR \
184 -DLFS_THREADSAFE" \
185 CODEFLAGS+="-o results/code-${{matrix.arch}}-threadsafe.csv"
186 - name: results-code-migrate
188 mkdir -p results
192 -DLFS_NO_ASSERT \
193 -DLFS_NO_DEBUG \
194 -DLFS_NO_WARN \
195 -DLFS_NO_ERROR \
196 -DLFS_MIGRATE" \
197 CODEFLAGS+="-o results/code-${{matrix.arch}}-migrate.csv"
198 - name: results-code-error-asserts
200 mkdir -p results
204 -DLFS_NO_DEBUG \
205 -DLFS_NO_WARN \
206 -DLFS_NO_ERROR \
207 -D'LFS_ASSERT(test)=do {if(!(test)) {return -1;}} while(0)'" \
208 CODEFLAGS+="-o results/code-${{matrix.arch}}-error-asserts.csv"
209 - name: upload-results
210 uses: actions/upload-artifact@v2
216 - name: collect-status
219 mkdir -p status
220 for f in $(shopt -s nullglob ; echo results/code*.csv)
222 export STEP="results-code$(
223 echo $f | sed -n 's/.*code-.*-\(.*\).csv/-\1/p')"
225 echo $f | sed -n 's/.*code-.*-\(.*\).csv/ (\1)/p')"
226 export PREV="$(curl -sS \
228 | jq -re 'select(.sha != env.GITHUB_SHA) | .statuses[]
230 | capture("Code size is (?<result>[0-9]+)").result' \
232 export DESCRIPTION="$(./scripts/code.py -u $f -s | awk '
235 printf " (%+.1f%%)",100*($2-ENVIRON["PREV"])/ENVIRON["PREV"]}')"
236 jq -n '{
243 echo $f | sed -n 's/.*code-.*-\(.*\).csv/-\1/p').json
245 - name: upload-status
247 uses: actions/upload-artifact@v2
251 retention-days: 1
255 runs-on: ubuntu-18.04
257 - uses: actions/checkout@v2
258 - name: install
261 sudo apt-get update -qq
262 sudo apt-get install -qq python3 python3-pip
264 - name: install-valgrind
266 sudo apt-get update -qq
267 sudo apt-get install -qq valgrind
268 valgrind --version
270 - name: test-valgrind
271 run: make test TESTFLAGS+="-k --valgrind"
273 # self-host with littlefs-fuse for a fuzz-like test
275 runs-on: ubuntu-18.04
276 if: ${{!endsWith(github.ref, '-prefix')}}
278 - uses: actions/checkout@v2
279 - name: install
282 sudo apt-get update -qq
283 sudo apt-get install -qq python3 python3-pip libfuse-dev
285 fusermount -V
286 gcc --version
287 - uses: actions/checkout@v2
289 repository: littlefs-project/littlefs-fuse
291 path: littlefs-fuse
292 - name: setup
294 # copy our new version into littlefs-fuse
295 rm -rf littlefs-fuse/littlefs/*
296 cp -r $(git ls-tree --name-only HEAD) littlefs-fuse/littlefs
298 # setup disk for littlefs-fuse
303 - name: test
305 # self-host test
306 make -C littlefs-fuse
308 littlefs-fuse/lfs --format /dev/loop0
309 littlefs-fuse/lfs /dev/loop0 mount
313 cp -r $(git ls-tree --name-only HEAD) mount/littlefs
316 ls -flh
317 make -B test
319 # test migration using littlefs-fuse
321 runs-on: ubuntu-18.04
322 if: ${{!endsWith(github.ref, '-prefix')}}
324 - uses: actions/checkout@v2
325 - name: install
328 sudo apt-get update -qq
329 sudo apt-get install -qq python3 python3-pip libfuse-dev
331 fusermount -V
332 gcc --version
333 - uses: actions/checkout@v2
335 repository: littlefs-project/littlefs-fuse
338 - uses: actions/checkout@v2
340 repository: littlefs-project/littlefs-fuse
343 - name: setup
345 # copy our new version into littlefs-fuse
346 rm -rf v2/littlefs/*
347 cp -r $(git ls-tree --name-only HEAD) v2/littlefs
349 # setup disk for littlefs-fuse
354 - name: test
357 make -C v1
358 make -C v2
360 # run self-host test with v1
361 v1/lfs --format /dev/loop0
366 cp -r $(git ls-tree --name-only HEAD) mount/littlefs
369 ls -flh
370 make -B test
374 fusermount -u mount
376 v2/lfs --migrate /dev/loop0
379 # run self-host test with v2 right where we left off
383 ls -flh
384 make -B test
388 runs-on: ubuntu-18.04
391 - uses: actions/checkout@v2
392 - name: install
394 sudo apt-get update -qq
395 sudo apt-get install -qq python3 python3-pip lcov
397 # yes we continue-on-error nearly every step, continue-on-error
400 - uses: actions/download-artifact@v2
401 continue-on-error: true
405 - name: results-coverage
406 continue-on-error: true
408 mkdir -p results
409 lcov $(for f in coverage/*.info ; do echo "-a $f" ; done) \
410 -o results/coverage.info
411 ./scripts/coverage.py results/coverage.info -o results/coverage.csv
412 - name: upload-results
413 uses: actions/upload-artifact@v2
417 - name: collect-status
419 mkdir -p status
420 [ -e results/coverage.csv ] || exit 0
421 export STEP="results-coverage"
423 export PREV="$(curl -sS \
425 | jq -re 'select(.sha != env.GITHUB_SHA) | .statuses[]
427 | capture("Coverage is (?<result>[0-9\\.]+)").result' \
430 ./scripts/coverage.py -u results/coverage.csv -s | awk -F '[ /%]+' '
433 printf " (%+.1f%%)",$4-ENVIRON["PREV"]}')"
434 jq -n '{
441 - name: upload-status
442 uses: actions/upload-artifact@v2
446 retention-days: 1