From e3df3ac5ce3d8ccb4c8b52eeaf0fef3ebd91eb14 Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 4 Dec 2022 20:29:24 +0700 Subject: add codespell config and ci run --- .github/workflows/pre-commit.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/pre-commit.yml (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml new file mode 100644 index 000000000..7baf66e72 --- /dev/null +++ b/.github/workflows/pre-commit.yml @@ -0,0 +1,24 @@ +name: pre-commit + +on: + pull_request: + push: + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + pre-commit: + runs-on: ubuntu-latest + steps: + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Checkout TinyUSB + uses: actions/checkout@v3 + + - name: Check Code Spelling + uses: codespell-project/actions-codespell@master \ No newline at end of file -- cgit v1.3.1 From b37870c964e9fafe8cdd4ff6e48fa072ca59858b Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 4 Dec 2022 21:08:47 +0700 Subject: test exclude-file.txt, add action concurrency --- .codespell/exclude-file.txt | 2 +- .codespellrc | 2 +- .github/workflows/build_aarch64.yml | 4 ++++ .github/workflows/build_arm.yml | 21 --------------------- .github/workflows/build_esp.yml | 4 ++++ .github/workflows/build_msp430.yml | 4 ++++ .github/workflows/build_renesas.yml | 4 ++++ .github/workflows/build_riscv.yml | 4 ++++ .github/workflows/pre-commit.yml | 16 ++++++++++++++-- 9 files changed, 36 insertions(+), 25 deletions(-) (limited to '.github/workflows/pre-commit.yml') diff --git a/.codespell/exclude-file.txt b/.codespell/exclude-file.txt index 8b1378917..af8265cc7 100644 --- a/.codespell/exclude-file.txt +++ b/.codespell/exclude-file.txt @@ -1 +1 @@ - + return USB0.INTSTS1.BIT.ATTCH ? true : false; diff --git a/.codespellrc b/.codespellrc index 0e1bc1483..19a877e2a 100644 --- a/.codespellrc +++ b/.codespellrc @@ -5,4 +5,4 @@ ignore-words-list = synopsys, sie, tre, hsi, fro, dout, mot, te check-filenames = check-hidden = skip = .cproject,./.git,./hw/mcu,./lib,./examples/*/*/_build,./examples/*/*/ses,./examples/*/*/ozone,./hw/mcu,./test/vendor,./tests_obsolete -exclude-file = .codespell/exclude-file.txt +exclude-file = ./.codespell/exclude-file.txt diff --git a/.github/workflows/build_aarch64.yml b/.github/workflows/build_aarch64.yml index af26f33f2..49973fe41 100644 --- a/.github/workflows/build_aarch64.yml +++ b/.github/workflows/build_aarch64.yml @@ -7,6 +7,10 @@ on: types: - created +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: # --------------------------------------- # Build AARCH64 family diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml index 0dab46d0f..56200465b 100644 --- a/.github/workflows/build_arm.yml +++ b/.github/workflows/build_arm.yml @@ -12,27 +12,6 @@ concurrency: cancel-in-progress: true jobs: - # --------------------------------------- - # Unit testing with Ceedling - # --------------------------------------- - unit-test: - runs-on: ubuntu-latest - steps: - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: '2.7' - - - name: Checkout TinyUSB - uses: actions/checkout@v3 - - - name: Unit Tests - run: | - # Install Ceedling - gem install ceedling - cd test - ceedling test:all - # --------------------------------------- # Build ARM family # --------------------------------------- diff --git a/.github/workflows/build_esp.yml b/.github/workflows/build_esp.yml index 51d91de49..d775e50b6 100644 --- a/.github/workflows/build_esp.yml +++ b/.github/workflows/build_esp.yml @@ -7,6 +7,10 @@ on: types: - created +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: build-esp: runs-on: ubuntu-latest diff --git a/.github/workflows/build_msp430.yml b/.github/workflows/build_msp430.yml index 1ef25a6a0..d28341e5b 100644 --- a/.github/workflows/build_msp430.yml +++ b/.github/workflows/build_msp430.yml @@ -7,6 +7,10 @@ on: types: - created +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: build-msp430: runs-on: ubuntu-latest diff --git a/.github/workflows/build_renesas.yml b/.github/workflows/build_renesas.yml index 2e272c832..6cb873dd8 100644 --- a/.github/workflows/build_renesas.yml +++ b/.github/workflows/build_renesas.yml @@ -7,6 +7,10 @@ on: types: - created +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: build-rx: runs-on: ubuntu-latest diff --git a/.github/workflows/build_riscv.yml b/.github/workflows/build_riscv.yml index 61c1c60c5..18e952d92 100644 --- a/.github/workflows/build_riscv.yml +++ b/.github/workflows/build_riscv.yml @@ -7,6 +7,10 @@ on: types: - created +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: build-riscv: runs-on: ubuntu-latest diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 7baf66e72..2463903f8 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -17,8 +17,20 @@ jobs: with: python-version: '3.x' + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.7' + - name: Checkout TinyUSB uses: actions/checkout@v3 - - name: Check Code Spelling - uses: codespell-project/actions-codespell@master \ No newline at end of file + - name: Run codespell + uses: codespell-project/actions-codespell@master + + - name: Run Unit Tests + run: | + # Install Ceedling + gem install ceedling + cd test + ceedling test:all \ No newline at end of file -- cgit v1.3.1 From 91d5fa5639a2330793b8e8828c4077911cdd2acd Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 8 Dec 2022 09:44:26 +0700 Subject: add paths to all workflows --- .github/workflows/build_aarch64.yml | 16 ++++++++++++---- .github/workflows/build_arm.yml | 5 +++++ .github/workflows/build_esp.yml | 16 ++++++++++++---- .github/workflows/build_msp430.yml | 16 ++++++++++++---- .github/workflows/build_renesas.yml | 16 ++++++++++++---- .github/workflows/build_riscv.yml | 16 ++++++++++++---- .github/workflows/pre-commit.yml | 2 +- .github/workflows/test_hardware.yml | 17 +++++++++++++---- 8 files changed, 79 insertions(+), 25 deletions(-) (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/build_aarch64.yml b/.github/workflows/build_aarch64.yml index 49973fe41..ccfca6316 100644 --- a/.github/workflows/build_aarch64.yml +++ b/.github/workflows/build_aarch64.yml @@ -1,11 +1,19 @@ name: Build AArch64 on: - pull_request: push: - release: - types: - - created + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' + pull_request: + branches: [ master ] + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml index 56ba88669..d1b94c47b 100644 --- a/.github/workflows/build_arm.yml +++ b/.github/workflows/build_arm.yml @@ -9,6 +9,11 @@ on: - 'hw' pull_request: branches: [ master ] + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} diff --git a/.github/workflows/build_esp.yml b/.github/workflows/build_esp.yml index d775e50b6..7f2c292fa 100644 --- a/.github/workflows/build_esp.yml +++ b/.github/workflows/build_esp.yml @@ -1,11 +1,19 @@ name: Build ESP on: - pull_request: push: - release: - types: - - created + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' + pull_request: + branches: [ master ] + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} diff --git a/.github/workflows/build_msp430.yml b/.github/workflows/build_msp430.yml index d28341e5b..f41344e30 100644 --- a/.github/workflows/build_msp430.yml +++ b/.github/workflows/build_msp430.yml @@ -1,11 +1,19 @@ name: Build MSP430 on: - pull_request: push: - release: - types: - - created + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' + pull_request: + branches: [ master ] + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} diff --git a/.github/workflows/build_renesas.yml b/.github/workflows/build_renesas.yml index 6cb873dd8..d6550ed6d 100644 --- a/.github/workflows/build_renesas.yml +++ b/.github/workflows/build_renesas.yml @@ -1,11 +1,19 @@ name: Build Renesas on: - pull_request: push: - release: - types: - - created + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' + pull_request: + branches: [ master ] + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} diff --git a/.github/workflows/build_riscv.yml b/.github/workflows/build_riscv.yml index 18e952d92..257050a53 100644 --- a/.github/workflows/build_riscv.yml +++ b/.github/workflows/build_riscv.yml @@ -1,11 +1,19 @@ name: Build RISC-V on: - pull_request: push: - release: - types: - - created + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' + pull_request: + branches: [ master ] + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 2463903f8..c0261ec66 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -20,7 +20,7 @@ jobs: - name: Setup Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '2.7' + ruby-version: '3.0' - name: Checkout TinyUSB uses: actions/checkout@v3 diff --git a/.github/workflows/test_hardware.yml b/.github/workflows/test_hardware.yml index 3ef1fdc56..622b079da 100644 --- a/.github/workflows/test_hardware.yml +++ b/.github/workflows/test_hardware.yml @@ -1,10 +1,19 @@ name: Hardware Test + on: - pull_request: push: - release: - types: - - created + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' + pull_request: + branches: [ master ] + paths: + - 'src' + - 'examples' + - 'lib' + - 'hw' # Hardware in the loop (HIL) # Current self-hosted instance is running on an EPYC 7232 server hosted by HiFiPhile user -- cgit v1.3.1 From 34081f6c5c0fa4541a2eba5fdd8cc0cfbfe35951 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 8 Dec 2022 10:00:25 +0700 Subject: update ci --- .github/workflows/pre-commit.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index c0261ec66..96a59069b 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -1,8 +1,9 @@ name: pre-commit on: - pull_request: push: + pull_request: + branches: [ master ] concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} @@ -32,5 +33,5 @@ jobs: run: | # Install Ceedling gem install ceedling - cd test + cd test/unit-test ceedling test:all \ No newline at end of file -- cgit v1.3.1 From bf8f4f95211c286d1ff1def3f140e1e304e76b4d Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 8 Dec 2022 11:31:39 +0700 Subject: move build Fuzzer into pre-commit --- .github/workflows/build_fuzzers.yml | 37 ------------------------------------- .github/workflows/pre-commit.yml | 19 ++++++++++++++++++- test/fuzz/make.mk | 6 +++--- 3 files changed, 21 insertions(+), 41 deletions(-) delete mode 100644 .github/workflows/build_fuzzers.yml (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/build_fuzzers.yml b/.github/workflows/build_fuzzers.yml deleted file mode 100644 index efa4cc9c0..000000000 --- a/.github/workflows/build_fuzzers.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Build Fuzzer - -on: - pull_request: - push: - release: - types: - - created - -jobs: - # --------------------------------------- - # Build all no-family (orphaned) boards - # --------------------------------------- - build-board: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - fuzz_harness: - - "device/cdc" - - "device/msc" - - "device/net" - - steps: - - name: Setup Python - uses: actions/setup-python@v3 - - - name: Checkout TinyUSB - uses: actions/checkout@v3 - - - name: Fetch deps - run: | - sudo apt update && sudo apt install libc++abi-dev libc++-dev - make CC=clang CXX=clang++ -C test/fuzz/${{ matrix.fuzz_harness }} get-deps - - - name: Build Fuzzer - run: make CC=clang CXX=clang++ -C test/fuzz/${{ matrix.fuzz_harness }} diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 96a59069b..ff52606e3 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -34,4 +34,21 @@ jobs: # Install Ceedling gem install ceedling cd test/unit-test - ceedling test:all \ No newline at end of file + ceedling test:all + + - name: Fetch deps + run: | + sudo apt update && sudo apt install libc++abi-dev libc++-dev + fuzz_harness=$(ls -d test/fuzz/device/*/ test/fuzz/host/*/) + for h in $fuzz_harness + do + make $h get-deps + done + + - name: Build Fuzzer + run: | + fuzz_harness=$(ls -d test/fuzz/device/*/ test/fuzz/host/*/) + for h in $fuzz_harness + do + make $h all + done diff --git a/test/fuzz/make.mk b/test/fuzz/make.mk index 3da79e8ff..03254112f 100644 --- a/test/fuzz/make.mk +++ b/test/fuzz/make.mk @@ -16,9 +16,9 @@ __check_defined = \ #-------------- Fuzz harness compiler ------------ -CC ?= clang -CXX ?= clang++ -GDB ?= gdb +CC = clang +CXX = clang++ +GDB = gdb OBJCOPY = objcopy SIZE = size MKDIR = mkdir -- cgit v1.3.1 From ffd008dc75d1a04b9a0664b339342fb494356f46 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 8 Dec 2022 11:36:19 +0700 Subject: update build fuzzer --- .github/workflows/pre-commit.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index ff52606e3..29a412bcf 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -38,8 +38,7 @@ jobs: - name: Fetch deps run: | - sudo apt update && sudo apt install libc++abi-dev libc++-dev - fuzz_harness=$(ls -d test/fuzz/device/*/ test/fuzz/host/*/) + fuzz_harness=$(ls -d test/fuzz/device/*/) for h in $fuzz_harness do make $h get-deps @@ -47,7 +46,7 @@ jobs: - name: Build Fuzzer run: | - fuzz_harness=$(ls -d test/fuzz/device/*/ test/fuzz/host/*/) + fuzz_harness=$(ls -d test/fuzz/device/*/) for h in $fuzz_harness do make $h all -- cgit v1.3.1 From 33ea178cd9b7c2fdab1a677d2e676a94d131dbb0 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 8 Dec 2022 11:37:13 +0700 Subject: update build fuzzer step --- .github/workflows/pre-commit.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 29a412bcf..653084ca6 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -36,18 +36,11 @@ jobs: cd test/unit-test ceedling test:all - - name: Fetch deps - run: | - fuzz_harness=$(ls -d test/fuzz/device/*/) - for h in $fuzz_harness - do - make $h get-deps - done - - name: Build Fuzzer run: | fuzz_harness=$(ls -d test/fuzz/device/*/) for h in $fuzz_harness do + make $h get-deps make $h all done -- cgit v1.3.1 From 4deec2f4be2bf48e47dae4df969f4f0ecd042d94 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 8 Dec 2022 11:40:43 +0700 Subject: fix ci --- .github/workflows/pre-commit.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 653084ca6..8a1101ac0 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -41,6 +41,6 @@ jobs: fuzz_harness=$(ls -d test/fuzz/device/*/) for h in $fuzz_harness do - make $h get-deps - make $h all + make -C $h get-deps + make -C $h all done -- cgit v1.3.1 From 1dcffc655d8b42a850c8cd16cdf66caab1c9549d Mon Sep 17 00:00:00 2001 From: Nathaniel Brough Date: Wed, 28 Dec 2022 20:37:12 +0000 Subject: fix(fuzz): Make sanitizer flags optional Currently OSS fuzz expects to have complete control over the sanitizer flags. As we currently have these set it's causing problems with the OSS fuzz build. Instead we should use the provided variables from the OSS fuzz build environment. For local testing we'll create a set a well defined defaults. --- .github/workflows/pre-commit.yml | 2 ++ test/fuzz/make.mk | 16 ++++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) (limited to '.github/workflows/pre-commit.yml') diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 8a1101ac0..d2150d13f 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -38,6 +38,8 @@ jobs: - name: Build Fuzzer run: | + export CC=clang + export CXX=clang++ fuzz_harness=$(ls -d test/fuzz/device/*/) for h in $fuzz_harness do diff --git a/test/fuzz/make.mk b/test/fuzz/make.mk index 03254112f..6717ebc80 100644 --- a/test/fuzz/make.mk +++ b/test/fuzz/make.mk @@ -16,9 +16,9 @@ __check_defined = \ #-------------- Fuzz harness compiler ------------ -CC = clang -CXX = clang++ -GDB = gdb +CC ?= clang +CXX ?= clang++ +GDB ?= gdb OBJCOPY = objcopy SIZE = size MKDIR = mkdir @@ -34,6 +34,13 @@ else PYTHON = python3 endif +#-------------- Fuzz harness flags ------------ +COVERAGE_FLAGS ?= -fsanitize-coverage=trace-pc-guard +SANITIZER_FLAGS ?= -fsanitize=fuzzer \ + -fsanitize=address + +CFLAGS += $(COVERAGE_FLAGS) $(SANITIZER_FLAGS) + #-------------- Source files and compiler flags -------------- @@ -42,9 +49,6 @@ INC += $(TOP)/test # Compiler Flags CFLAGS += \ -ggdb \ - -fsanitize=fuzzer \ - -fsanitize=address \ - -fsanitize=undefined \ -fdata-sections \ -ffunction-sections \ -fno-strict-aliasing \ -- cgit v1.3.1