Unit testing framework and devicetree framework refactoring (#50)
authorLunaixsky <lunaixsky@qq.com>
Thu, 28 Nov 2024 01:08:29 +0000 (01:08 +0000)
committerGitHub <noreply@github.com>
Thu, 28 Nov 2024 01:08:29 +0000 (01:08 +0000)
commit9daf4fcdae88f72af60aeb0c7722841af02233d4
tree223d0f32d3cd1becb0e32f1da3041eaa9d11b499
parent35a7d633d3f16c1e0539af6ca5d8e7482926cd93
Unit testing framework and  devicetree framework refactoring (#50)

* re-write the fdt iterator and parsing procedure

* unit test framework and devtree testings

* add expect_* assertions, test statistics, more dt test cases

* basic.dts : basic dt property testing: trivial, simple prop_encoded,
  mixed prop_encoded
* inheritence.dts : #address-cell, #size-cell and #interrupt-cell parent
  inheritence test.

* regression fix on dt, add dt prop extractor api (dtpx)

* tests for interrupt node and rework dtpi api

* add tests for interrupt node, exercise interrupt mask and interrupt map
* redesign the dtpi api to make it simpler to use
* rename dt_node_* and dt_prop_* struct to dtn_* and dtp_* to make it
  adhere to related functions

* struct dtspec: unified specifier-map representation

* add correpsond unit test.

* fix minor issues, integrate the test into main makefile

* api: dt_interrupt_at to query interrupt specifier at given location

* add unit test cases for interrupt node related test

* rewrite FDT iterator, enable in-place DT lookup

* add alloc-less iterator for /memory, /reserved-memory nodes
* unit tests for the rewrited iterators

* unit test for fdt-memscan

* fix detected issues

* fix indentations
52 files changed:
lunaix-os/.gitignore
lunaix-os/arch/generic/includes/asm-generic/isrm.h
lunaix-os/arch/x86/exceptions/isrm.c
lunaix-os/hal/devtree/LBuild
lunaix-os/hal/devtree/devtree.h
lunaix-os/hal/devtree/dt.c
lunaix-os/hal/devtree/dt_interrupt.c
lunaix-os/hal/devtree/dtm.c
lunaix-os/hal/devtree/dtspec.c [new file with mode: 0644]
lunaix-os/includes/hal/devtree.h
lunaix-os/includes/hal/devtreem.h
lunaix-os/includes/listings/changeling.lst
lunaix-os/includes/lunaix/changeling.h
lunaix-os/includes/lunaix/compiler.h
lunaix-os/includes/lunaix/ds/hstr.h
lunaix-os/makefile
lunaix-os/tests/.gitignore [new file with mode: 0644]
lunaix-os/tests/includes/testing/basic.h [new file with mode: 0644]
lunaix-os/tests/includes/testing/strutils.h [new file with mode: 0644]
lunaix-os/tests/shared/framework.c [new file with mode: 0644]
lunaix-os/tests/shared/makefile [new file with mode: 0644]
lunaix-os/tests/units/device-tree/.gitignore [new file with mode: 0644]
lunaix-os/tests/units/device-tree/common.h [new file with mode: 0644]
lunaix-os/tests/units/device-tree/dut/changeling.c [new symlink]
lunaix-os/tests/units/device-tree/dut/devtree.h [new symlink]
lunaix-os/tests/units/device-tree/dut/dt.c [new symlink]
lunaix-os/tests/units/device-tree/dut/dt_interrupt.c [new symlink]
lunaix-os/tests/units/device-tree/dut/dtspec.c [new symlink]
lunaix-os/tests/units/device-tree/load.c [new file with mode: 0644]
lunaix-os/tests/units/device-tree/makefile [new file with mode: 0644]
lunaix-os/tests/units/device-tree/samples/basic.dts [new file with mode: 0644]
lunaix-os/tests/units/device-tree/samples/fdt-iter.dts [new file with mode: 0644]
lunaix-os/tests/units/device-tree/samples/fdt-mem.dts [new file with mode: 0644]
lunaix-os/tests/units/device-tree/samples/inheritence.dts [new file with mode: 0644]
lunaix-os/tests/units/device-tree/samples/interrupts.dts [new file with mode: 0644]
lunaix-os/tests/units/device-tree/samples/intrmap.dts [new file with mode: 0644]
lunaix-os/tests/units/device-tree/test-basic.c [new file with mode: 0644]
lunaix-os/tests/units/device-tree/test-fdt-iter.c [new file with mode: 0644]
lunaix-os/tests/units/device-tree/test-fdt-mem.c [new file with mode: 0644]
lunaix-os/tests/units/device-tree/test-inheritence.c [new file with mode: 0644]
lunaix-os/tests/units/device-tree/test-interrupts.c [new file with mode: 0644]
lunaix-os/tests/units/device-tree/test-intrmap.c [new file with mode: 0644]
lunaix-os/tests/units/device-tree/tests.txt [new file with mode: 0644]
lunaix-os/tests/units/makefile [new file with mode: 0644]
lunaix-os/tests/units/stubs/includes/klibc/string.h [new file with mode: 0644]
lunaix-os/tests/units/stubs/includes/lunaix/owloysius.h [new file with mode: 0644]
lunaix-os/tests/units/stubs/klibc/hash.c [new symlink]
lunaix-os/tests/units/stubs/makefile [new file with mode: 0644]
lunaix-os/tests/units/stubs/spike.c [new file with mode: 0644]
lunaix-os/tests/units/stubs/syslog.c [new file with mode: 0644]
lunaix-os/tests/units/stubs/valloc.c [new file with mode: 0644]
lunaix-os/tests/units/test_build.mkinc [new file with mode: 0644]