Skip to content

Commit 611c9b2

Browse files
authored
Merge pull request #848 from littlefs-project/devel
Minor release: v2.7
2 parents 66f0756 + a942cdb commit 611c9b2

File tree

10 files changed

+451
-91
lines changed

10 files changed

+451
-91
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ jobs:
102102
# sizes table
103103
i=0
104104
j=0
105-
for c in "" readonly threadsafe migrate error-asserts
105+
for c in "" readonly threadsafe multiversion migrate error-asserts
106106
do
107107
# per-config results
108108
c_or_default=${c:-default}

.github/workflows/test.yml

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,27 @@ jobs:
170170
cp lfs.data.csv sizes/${{matrix.arch}}-threadsafe.data.csv
171171
cp lfs.stack.csv sizes/${{matrix.arch}}-threadsafe.stack.csv
172172
cp lfs.structs.csv sizes/${{matrix.arch}}-threadsafe.structs.csv
173+
- name: sizes-multiversion
174+
run: |
175+
make clean
176+
CFLAGS="$CFLAGS \
177+
-DLFS_NO_ASSERT \
178+
-DLFS_NO_DEBUG \
179+
-DLFS_NO_WARN \
180+
-DLFS_NO_ERROR \
181+
-DLFS_MULTIVERSION" \
182+
make lfs.code.csv lfs.data.csv lfs.stack.csv lfs.structs.csv
183+
./scripts/structs.py -u lfs.structs.csv
184+
./scripts/summary.py lfs.code.csv lfs.data.csv lfs.stack.csv \
185+
-bfunction \
186+
-fcode=code_size \
187+
-fdata=data_size \
188+
-fstack=stack_limit --max=stack_limit
189+
mkdir -p sizes
190+
cp lfs.code.csv sizes/${{matrix.arch}}-multiversion.code.csv
191+
cp lfs.data.csv sizes/${{matrix.arch}}-multiversion.data.csv
192+
cp lfs.stack.csv sizes/${{matrix.arch}}-multiversion.stack.csv
193+
cp lfs.structs.csv sizes/${{matrix.arch}}-multiversion.structs.csv
173194
- name: sizes-migrate
174195
run: |
175196
make clean
@@ -353,6 +374,42 @@ jobs:
353374
run: |
354375
CFLAGS="$CFLAGS -DLFS_NO_INTRINSICS" make test
355376
377+
# run LFS_MULTIVERSION tests
378+
test-multiversion:
379+
runs-on: ubuntu-22.04
380+
steps:
381+
- uses: actions/checkout@v2
382+
- name: install
383+
run: |
384+
# need a few things
385+
sudo apt-get update -qq
386+
sudo apt-get install -qq gcc python3 python3-pip
387+
pip3 install toml
388+
gcc --version
389+
python3 --version
390+
- name: test-multiversion
391+
run: |
392+
CFLAGS="$CFLAGS -DLFS_MULTIVERSION" make test
393+
394+
# run tests on the older version lfs2.0
395+
test-lfs2_0:
396+
runs-on: ubuntu-22.04
397+
steps:
398+
- uses: actions/checkout@v2
399+
- name: install
400+
run: |
401+
# need a few things
402+
sudo apt-get update -qq
403+
sudo apt-get install -qq gcc python3 python3-pip
404+
pip3 install toml
405+
gcc --version
406+
python3 --version
407+
- name: test-lfs2_0
408+
run: |
409+
CFLAGS="$CFLAGS -DLFS_MULTIVERSION" \
410+
TESTFLAGS="$TESTFLAGS -DDISK_VERSION=0x00020000" \
411+
make test
412+
356413
# run under Valgrind to check for memory errors
357414
test-valgrind:
358415
runs-on: ubuntu-22.04
@@ -371,7 +428,8 @@ jobs:
371428
# on one geometry
372429
- name: test-valgrind
373430
run: |
374-
TESTFLAGS="$TESTFLAGS --valgrind -Gdefault -Pnone" make test
431+
TESTFLAGS="$TESTFLAGS --valgrind --context=1024 -Gdefault -Pnone" \
432+
make test
375433
376434
# test that compilation is warning free under clang
377435
# run with Clang, mostly to check for Clang-specific warnings
@@ -684,7 +742,7 @@ jobs:
684742
# sizes table
685743
i=0
686744
j=0
687-
for c in "" readonly threadsafe migrate error-asserts
745+
for c in "" readonly threadsafe multiversion migrate error-asserts
688746
do
689747
# per-config results
690748
c_or_default=${c:-default}

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,10 @@ License Identifiers that are here available: http://spdx.org/licenses/
250250
MCUs. It offers static wear-leveling and power-resilience with only a fixed
251251
_O(|address|)_ pointer structure stored on each block and in RAM.
252252

253+
- [ChaN's FatFs] - A lightweight reimplementation of the infamous FAT filesystem
254+
for microcontroller-scale devices. Due to limitations of FAT it can't provide
255+
power-loss resilience, but it does allow easy interop with PCs.
256+
253257
- [chamelon] - A pure-OCaml implementation of (most of) littlefs, designed for
254258
use with the MirageOS library operating system project. It is interoperable
255259
with the reference implementation, with some caveats.
@@ -266,6 +270,7 @@ License Identifiers that are here available: http://spdx.org/licenses/
266270
[LittleFileSystem]: https://os.mbed.com/docs/mbed-os/latest/apis/littlefilesystem.html
267271
[SPIFFS]: https://github.com/pellepl/spiffs
268272
[Dhara]: https://github.com/dlbeer/dhara
273+
[ChaN's FatFs]: http://elm-chan.org/fsw/ff/00index_e.html
269274
[littlefs-python]: https://pypi.org/project/littlefs-python/
270275
[littlefs2-rust]: https://crates.io/crates/littlefs2
271276
[chamelon]: https://github.com/yomimono/chamelon

0 commit comments

Comments
 (0)