Commit Graph

564 Commits

Author SHA1 Message Date
openharmony_ci
60f4d26c6b
!20 部件化整改
Merge pull request !20 from zhushengle/deps
2023-05-09 14:55:29 +00:00
zhushengle
6f0a1760ac feat: 部件化整改
Close #I71QQ2

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: If932339ce896adf1932b630d4af6fac61d971d0f
2023-05-09 22:16:36 +08:00
openharmony_ci
14f08e7236
!19 Fix : 部件化需求整改
Merge pull request !19 from yinjiaming/bundle
2023-05-05 08:33:42 +00:00
yinjiaming
e1abdf809b fix:部件需求整改
修复了脚本扫描出的bundle.json的问题

Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: I29cb9b4facae8b53aba0b31c936f3151b9fba1d9
2023-05-05 15:42:32 +08:00
openharmony_ci
f675965e30
!18 更新版本号为V2.4
Merge pull request !18 from Hongjin Li/dev
2022-09-14 02:51:00 +00:00
Hongjin Li
82d5cb1bd7 fix: update version number to V2.4
Signed-off-by: Hongjin Li <lihongjin1@huawei.com>
Change-Id: I342f19ac3477eabecf71467a86fdae9449098a6c
2022-09-14 10:32:11 +08:00
openharmony_ci
24aba33a92
!11 fix: OTA中注释描述和LICENSE分离
Merge pull request !11 from zhushengle/ota
2022-03-14 08:23:27 +00:00
zhushengle
e665e89050 fix: OTA中注释描述和LICENSE分离
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I905169b948d9ebaad7516ad7110c6a3e1b8d08d5
2022-03-14 15:34:00 +08:00
openharmony_ci
f4a7ee6511
!7 feat: add bundle.json
Merge pull request !7 from pjscc/master
2022-01-24 02:41:46 +00:00
openharmony_ci
28a89e232a
!9 littlefs适配kernel部件标准化
Merge pull request !9 from Hongjin Li/lihongjin/br_dev
2022-01-22 03:45:26 +00:00
openharmony_ci
3afd44971b
!8 fix: pr模板补充说明
Merge pull request !8 from Harylee/mmu
2022-01-22 00:55:01 +00:00
openharmony_ci
9d441b40aa
!8 fix: pr模板补充说明
Merge pull request !8 from Harylee/mmu
2022-01-22 00:55:01 +00:00
openharmony_ci
cc737f7c1a
!8 fix: pr模板补充说明
Merge pull request !8 from Harylee/mmu
2022-01-22 00:55:01 +00:00
openharmony_ci
bb99c032a7
!8 fix: pr模板补充说明
Merge pull request !8 from Harylee/mmu
2022-01-22 00:55:01 +00:00
Haryslee
344f481fd0 fix: pr模板补充说明
Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I64f439a19971d7e06cc20a60b4ab87eb47bc8e0c
2022-01-21 17:25:29 +08:00
openharmony_ci
0564290506
!6 fix: 针对pr是否同步至release分支,增加原因说明规则
Merge pull request !6 from Harylee/mmu
2022-01-21 03:46:50 +00:00
pjscc
31ac800f84 add bundle.json
Signed-off-by: pjscc <pangjiashuai@huawei.com>
2022-01-20 17:01:22 +08:00
Hongjin Li
6c6919cac3 chore: littlefs适配kernel编译构建标准化
liteos-m kernel 部件标准化,littlefs新增gni配置,提供标准的源文件和include路径

Signed-off-by: Hongjin Li <lihongjin1@huawei.com>
Change-Id: Ia8ef80b17f9af3f880d25b7f5f87cbac650c110b
2022-01-20 16:49:03 +08:00
Haryslee
d203ebc1be fix: 针对pr是否同步至release分支,增加原因说明规则
Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I3823dddbada27ed05727ae987fbbfd82c24bb7a1
2022-01-20 09:47:22 +08:00
openharmony_ci
aadfa52ea3 !2 OAT
Merge pull request !2 from Caoruihong/oat2
2021-08-10 08:09:04 +00:00
Caoruihong
0534bc2d07 chore: add OAT.xml and README.OpenSource
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I4f45ae8d6ec77a7e69b818333e8da89e263f1a1b
2021-08-09 22:15:47 +08:00
openharmony_ci
23c293e41e !1 去使能M核上的littlefs的assert功能
Merge pull request !1 from li_zan/master
2021-06-17 11:13:51 +08:00
li_zan
04782a68a7 fix: 去使能M核上的littlefs的assert功能
close:#I3VSSK

Signed-off-by: li_zan <371442490@qq.com>
2021-06-16 15:54:04 +08:00
Christopher Haster
1863dc7883
Merge pull request #519 from littlefs-project/devel
Minor release: v2.4
2021-01-19 18:50:34 -06:00
Christopher Haster
3d4e4f2085
Bumped minor version to v2.4 2021-01-18 20:23:54 -06:00
Christopher Haster
a2c744c8f8
Merge pull request #516 from littlefs-project/ci-revamp
Adopt GitHub Actions, bring in a number of script/Makefile improvements
2021-01-18 18:38:42 -06:00
Christopher Haster
c0cc0a417e Enabled overriding of LFS_ASSERT/TRACE/DEBUG/etc
This is useful for testing the new erroring assert behavior in CI.
Asserts do not error by default, so this macro needs to be overriden.

It is possible to test this behavior using the existing option of
overriding lfs_util.h with a custom file, by using a small sed
one-line script. But this is much simpler.

This does raise the question if more of the configuration options in
lfs_util.h should be opened up for function-like macro overrides.
2021-01-18 14:01:53 -06:00
Christopher Haster
bca64d76cf Merge branch 'devel' into ci-revamp
Needed to bring in new "error-asserts" configuration
2021-01-18 12:23:25 -06:00
Christopher Haster
cab1d6cca6
Merge pull request #514 from mon/feature/assert_early_return
lfs_fs_preporphans: return int to alllow graceful LFS_ASSERT
2021-01-18 11:53:47 -06:00
Will
c9eed1f181 Add test to ensure asserts can return 2021-01-18 11:50:39 -06:00
Will
e7e4b352bd lfs_fs_preporphans ret int for graceful LFS_ASSERT 2021-01-18 11:50:33 -06:00
Christopher Haster
9449ef4be4
Merge pull request #511 from embeddedt/fix_lseek
Skip flushing file if lfs_file_rawseek() doesn't change position
2021-01-18 11:47:56 -06:00
Christopher Haster
cfe779fc08
Merge pull request #508 from littlefs-project/fix-sanity-check
Moved sanity check in lfs_format after compaction
2021-01-18 11:47:23 -06:00
Christopher Haster
0db6466984
Merge pull request #502 from mon/feature/meta_limits
Add metadata_max config to help performance on devices with large blocks
2021-01-18 11:45:34 -06:00
Christopher Haster
21488d9e06 Fixed incorrect documentation in test.py
The argparse documented an outdated format, and was off by 1.

Found by sender6
2021-01-18 11:41:51 -06:00
Christopher Haster
10a08833c6 Moved lfs_mdir_isopen behind LFS_NO_ASSERT
lfs_mdir_isopen goes unused if asserts are disabled, and this caused an
"unused function" warning on Clang (curiously not on GCC since the
function was static inline, commonly used for header-only functions).

Also removed "inline" from the lfs_mdir_* functions as these involve
linked-list operations and really shouldn't be inlined. And since they
are static, inlining should occur automatically if there is a benefit.

Found by dpgeorge
2021-01-18 11:41:18 -06:00
Christopher Haster
47d6b2fcf3 Removed unnecessary truncate condition thanks to new seek optimization 2021-01-11 00:14:34 -06:00
Christopher Haster
745d98cde0 Fixed lfs_file_truncate issue where internal state may not be flushed
This was caused by the new lfs_file_rawseek optimization that can skip
flushing when calculated file->pos is unchanged combined with an
implicit expectation in lfs_file_truncate that lfs_file_rawseek
unconditionally sets file->pos.

Because of this assumption, lfs_file_truncate could leave file->pos in
an outdated state while changing the internal file metadata. Humorously,
this was always gauranteed to trigger the skip in lfs_file_rawseek when
we try to restore the file->pos, leaving the file->cache used to do the
CTZ skip-list lookup in a potentially bad state.

The easiest fix is to just update file->pos correctly. Note we don't
want to explicitly flush since we can leverage the same noop
optimization if we truncate to the file position. Which I've added a
test for.
2021-01-11 00:14:34 -06:00
Themba Dube
3216b07c3b Use lfs_file_rawsize to calculate LFS_SEEK_END position 2021-01-11 00:14:30 -06:00
Christopher Haster
6592719d28 Removed .travis.yml
Now that it's been replaced by GitHub workflows (in .github/workflows)
2021-01-10 13:20:14 -06:00
Christopher Haster
c9110617b3 Added post-release script, cleaned up workflows
This helps an outstanding maintainer annoyance: updating dependencies to
bring in new versions on each littlefs release.

But instead of adding a bunch of scripts to the tail end of the release
workflow, the post-release script just triggers a single
"repository_dispatch" event in the newly created littlefs.post-release
repo. From there any number of post-release workflows can be run.

This indirection should let the post-release scripts move much quicker
than littlefs itself, which helps offset how fragile these sort of scripts
are.

---

Also finished cleaning up the workflows now that they are mostly
working.
2021-01-10 13:20:11 -06:00
Christopher Haster
104d65113d Reduced build sources to just the core littlefs
Currently this is just lfs.c and lfs_util.c. Previously this included
the block devices, but this meant all of the scripts needed to
explicitly deselect the block devices to avoid reporting build
size/coverage info on them.

Note that test.py still explicitly adds the block devices for compiling
tests, which is their main purpose. Humorously this means the block
devices will probably be compiled into most builds in this repo anyways.
2021-01-10 04:03:16 -06:00
Christopher Haster
6d3e4ac33e Brought over the release workflow
This is pretty much a cleaned up version of the release script that ran
on Travis.

This biggest change is that now the release script also collecs the
build results into a table as part of the change notes, which is a nice
addition.
2021-01-10 04:03:13 -06:00
Christopher Haster
9d6546071b Fixed a recompilation issue in CI, tweaked coverage.py a bit more
This was lost in the Travis -> GitHub transition, in serializing some of
the jobs, I missed that we need to clean between tests with different
geometry configurations. Otherwise we end up running outdated binaries,
which explains some of the weird test behavior we were seeing.

Also tweaked a few script things:
- Better subprocess error reporting (dump stderr on failure)
- Fixed a BUILDDIR rule issue in test.py
- Changed test-not-run status to None instead of undefined
2021-01-10 03:21:28 -06:00
Christopher Haster
b84fb6bcc5 Added BUILDDIR, a bit of script reworking
Now littlefs's Makefile can work with a custom build directory
for compilation output. Just set the BUILDDIR variable and the Makefile
will take care of the rest.

make BUILDDIR=build size

This makes it very easy to compare builds with different compile-time
configurations or different cross-compilers.

This meant most of code.py's build isolation is no longer needed,
so revisted the scripts and cleaned/tweaked a number of things.

Also bought code.py in line with coverage.py, fixing some of the
inconsistencies that were created while developing these scripts.

One change to note was removing the inline measuring logic, I realized
this feature is unnecessary thanks to GCC's -fkeep-static-functions and
-fno-inline flags.
2021-01-10 03:21:21 -06:00
Christopher Haster
887f3660ed Switched to lcov for coverage collection, greatly simplified coverage.py
Since we already have fairly complicated scriptts, I figured it wouldn't
be too hard to use the gcov tools and directly parse their output. Boy
was I wrong.

The gcov intermediary format is a bit of a mess. In version 5.4, a
text-based intermediary format is written to a single .gcov file per
executable. This changed sometime before version 7.5, when it started
writing separate .gcov files per .o files. And in version 9 this
intermediary format has been entirely replaced with an incompatible json
format!

Ironically, this means the internal-only .gcda/.gcno binary format has
actually been more stable than the intermediary format.

Also there's no way to avoid temporary .gcov files generated in the
project root, which risks messing with how test.py runs parallel tests.
Fortunately this looks like it will be fixed in gcov version 9.

---

Ended up switching to lcov, which was the right way to go. lcov handles
all of the gcov parsing, provides an easily parsable output, and even
provides a set of higher-level commands to manage coverage collection
from different runs.

Since this is all provided by lcov, was able to simplify coverage.py
quite a bit. Now it just parses the .info files output by lcov.
2021-01-10 02:21:33 -06:00
Christopher Haster
eeeceb9e30 Added coverage.py, and optional coverage info to test.py
Now coverage information can be collected if you provide the --coverage
to test.py. Internally this uses GCC's gcov instrumentation along with a
new script, coverage.py, to parse *.gcov files.

The main use for this is finding coverage info during CI runs. There's a
risk that the instrumentation may make it more difficult to debug, so I
decided to not make coverage collection enabled by default.
2021-01-10 02:12:45 -06:00
Christopher Haster
b2235e956d Added GitHub workflows to run tests
Mostly taken from .travis.yml, biggest changes were around how to get
the status updates to work.

We can't use a token on PRs the same way we could in Travis, so instead
we use a second workflow that checks every pull request for "status"
artifacts, and create the actual statuses in the "workflow_run" event,
where we have full access to repo secrets.
2021-01-09 23:42:49 -06:00
Themba Dube
6bb4043154 Skip flushing file if lfs_file_rawseek() doesn't change position 2020-12-24 14:05:46 -05:00
Christopher Haster
2b804537b0 Moved sanity check in lfs_format after compaction
After a bit of tweaking in 9dde5c7 to write out all superblocks
during lfs_format, additional writes were added after the sanity
checking normally done at the end.

This turned out to be a problem when porting littlefs, as it makes it
easy for addressing issues to not get caught during lfs_format.

Found by marekr, tristanclare94, and mjs513
2020-12-22 11:47:48 -06:00