-
Notifications
You must be signed in to change notification settings - Fork 94
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
26585e4
commit a236780
Showing
554 changed files
with
288,678 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
# The name of the workflow. GitHub displays the names of your | ||
# workflows under your repository's "Action" tab. | ||
name: regression_test | ||
|
||
# Controls when the action will run. | ||
on: | ||
# Enable the workflow to be triggered manually. | ||
workflow_dispatch: | ||
# Get inputs | ||
inputs: | ||
# inputs.tests_to_run | ||
tests_to_run: | ||
description: 'all, single or multiple of default_build_coverage error_check_build_full_coverage tracex_enable_build device_buffer_owner_build device_zero_copy_build nofx_build_coverage optimized_build standalone_device_build_coverage standalone_device_buffer_owner_build standalone_device_zero_copy_build standalone_host_build_coverage standalone_build_coverage generic_build otg_support_build memory_management_build_coverage msrc_rtos_build msrc_standalone_build' | ||
required: true | ||
default: 'all' | ||
# Triggers the workflow on push or pull request events but only for the master branch. | ||
pull_request: | ||
branches: [ master ] | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
# This workflow contains a single job called "run_tests". | ||
run_tests: | ||
|
||
# Enviroments are used to describe a general deployment target like "production", "staging", or "development". | ||
# When a GitHub Actions workflow deploys to an environment, the environment is displayed on the main page of the repository. | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
|
||
# Use "permissions" to modify the default permissions granted to the "GITHUB_TOKEN". | ||
permissions: | ||
# Required by "deploy-pages" action. | ||
pages: write | ||
id-token: write | ||
|
||
# Required by "nricoMi/publish-unit-test-result-action" action. | ||
contents: read | ||
issues: read | ||
checks: write | ||
pull-requests: write | ||
|
||
# The type of runner that the job will run on. | ||
runs-on: ubuntu-latest | ||
|
||
# Steps represent a sequence of tasks that will be executed as part of the job. | ||
steps: | ||
# Check out the repository. | ||
- name: Check out the repository | ||
uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
# Install software. | ||
- name: Install softwares | ||
run: ./scripts/install.sh | ||
|
||
# Build tests. | ||
- name: Build USBX | ||
run: ./scripts/build.sh ${{ inputs.tests_to_run }} | ||
|
||
# Run tests. | ||
- name: Test USBX | ||
run: ./scripts/test.sh ${{ inputs.tests_to_run }} | ||
|
||
# Use "EnricoMi/publish-unit-test-result-action" action to publish test results. | ||
- name: Publish Test Results | ||
uses: EnricoMi/[email protected] | ||
# By default, if the previous step fails, this step will not be executed. | ||
# Add if condition to run this step even if the previous step fails | ||
if: always() | ||
with: | ||
files: | | ||
./test/cmake/usbx/build/*/*.xml | ||
# Upload test results to artifacts | ||
- name: Upload Test Results | ||
if: success() || failure() | ||
uses: actions/[email protected] | ||
with: | ||
name: test_reports_USBX | ||
path: | | ||
./test/cmake/usbx/build/*.txt | ||
./test/cmake/usbx/build/*/Testing/**/*.xml | ||
- name: Configure GitHub Pages # Enable GitHub Pages and extract various metadata about a site. | ||
uses: actions/[email protected] | ||
|
||
# Package and upload GitHub Pages artifact. | ||
- name: Upload GitHub Pages artifact | ||
uses: actions/[email protected] | ||
with: | ||
name: default_build_coverage_USBX | ||
path: ./test/cmake/usbx/coverage_report/default_build_coverage | ||
|
||
# Deploing GitHub Pages artifacts. | ||
- name: Deploy GitHub Pages site | ||
id: deployment | ||
uses: actions/[email protected] | ||
with: | ||
artifact_name: default_build_coverage_USBX | ||
|
||
# Gegenerate code coverage results summary to code-coverage-results.md | ||
- name: Generate Code Coverage Results Summary | ||
uses: irongut/[email protected] | ||
with: | ||
filename: ./test/cmake/usbx/coverage_report/default_build_coverage.xml | ||
format: markdown | ||
badge: true | ||
hide_complexity: true | ||
output: file | ||
|
||
# Create a new markdown file "code-coverage-summary.md". | ||
# Put the coverage summary and report url to the new markdown file. | ||
# Write the coverage summary to job summary. | ||
- name: Write Code Coverage Report URL | ||
run: | | ||
cat code-coverage-results.md > code-coverage-summary.md | ||
echo -e "\n" >> code-coverage-summary.md | ||
echo '[Open Coverage Report](${{ steps.deployment.outputs.page_url }})' >> code-coverage-summary.md | ||
echo "## Coverage Report" >> $GITHUB_STEP_SUMMARY | ||
cat code-coverage-summary.md >> $GITHUB_STEP_SUMMARY | ||
- name: Create CheckRun for Code Coverage # Create check run to publish the code coverage summary to the check summary | ||
uses: LouisBrunner/[email protected] | ||
with: | ||
token: ${{ secrets.GITHUB_TOKEN }} | ||
name: Code Coverage | ||
conclusion: ${{ job.status }} | ||
output: | | ||
{"summary":"Coverage Report"} | ||
output_text_description_file: code-coverage-summary.md | ||
|
||
- name: Sticky Pull Request Comment | ||
uses: marocchino/[email protected] | ||
if: github.event_name == 'pull_request' | ||
with: | ||
# Indicate if new comment messages should be appended to previous comment message. Only `true` is allowed. Just skip this item when you don't need it. | ||
append: true # optional, default is false | ||
# glob path to file(s) containing comment message | ||
path: code-coverage-summary.md | ||
|
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#!/bin/bash | ||
$(dirname `realpath $0`)/../test/cmake/usbx/run.sh build $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#!/bin/bash | ||
# | ||
# Install necessary softwares for Ubuntu. | ||
|
||
sudo apt-get update | ||
sudo apt-get install -y \ | ||
gcc-multilib \ | ||
git \ | ||
g++ \ | ||
python3-pip \ | ||
ninja-build \ | ||
unifdef \ | ||
p7zip-full \ | ||
tofrodos \ | ||
gawk \ | ||
software-properties-common | ||
|
||
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - | ||
CODENAME=$(lsb_release -c | cut -f2 -d':' | sed 's/\t//') | ||
sudo apt-add-repository -y "deb https://apt.kitware.com/ubuntu/ $CODENAME main" | ||
sudo apt-get -y install cmake | ||
|
||
python3 -m pip install --upgrade pip | ||
pip3 install gcovr==4.1 | ||
pip3 install --upgrade cmake |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#!/bin/bash | ||
CTEST_PARALLEL_LEVEL=4 $(dirname `realpath $0`)/../test/cmake/usbx/run.sh test $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
cmake_minimum_required(VERSION 3.13 FATAL_ERROR) | ||
|
||
project(libs LANGUAGES C) | ||
|
||
if($ENV{ENABLE_64}) | ||
message(STATUS "Building for 64bit") | ||
set(NX_USER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/nx_user.h) | ||
else() | ||
add_compile_options(-m32) | ||
add_link_options(-m32) | ||
message(STATUS "Building for 32bit") | ||
endif() | ||
message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.") | ||
|
||
get_filename_component(externals ${CMAKE_CURRENT_SOURCE_DIR}/../../../externals | ||
ABSOLUTE) | ||
add_subdirectory(${externals}/threadx threadx) | ||
add_subdirectory(${externals}/netxduo netxduo) | ||
add_subdirectory(${externals}/filex filex) | ||
target_compile_options(threadx PRIVATE -DTX_ENABLE_EVENT_TRACE) | ||
if(NOT DEFINED ENV{ENABLE_IDLE}) | ||
target_compile_options(threadx PRIVATE -DTX_LINUX_NO_IDLE_ENABLE) | ||
endif() | ||
target_compile_options(filex PRIVATE -DFX_ENABLE_EXFAT) | ||
|
||
target_compile_options(netxduo PRIVATE -DTX_ENABLE_EVENT_TRACE -DNX_PHYSICAL_HEADER=20) | ||
|
||
foreach(lib threadx netxduo filex) | ||
get_target_property(dirs ${lib} INCLUDE_DIRECTORIES) | ||
execute_process(COMMAND mkdir -p ${CMAKE_BINARY_DIR}/inc) | ||
foreach(dir ${dirs}) | ||
file(GLOB header_files ${dir}/*.h) | ||
foreach(header_file ${header_files}) | ||
execute_process(COMMAND ln -sf ${header_file} ${CMAKE_BINARY_DIR}/inc) | ||
endforeach() | ||
endforeach() | ||
endforeach() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
/**************************************************************************/ | ||
/* */ | ||
/* Copyright (c) Microsoft Corporation. All rights reserved. */ | ||
/* */ | ||
/* This software is licensed under the Microsoft Software License */ | ||
/* Terms for Microsoft Azure RTOS. Full text of the license can be */ | ||
/* found in the LICENSE file at https://aka.ms/AzureRTOS_EULA */ | ||
/* and in the root directory of this software. */ | ||
/* */ | ||
/**************************************************************************/ | ||
|
||
|
||
/**************************************************************************/ | ||
/**************************************************************************/ | ||
/** */ | ||
/** NetX Component */ | ||
/** */ | ||
/** User Specific */ | ||
/** */ | ||
/**************************************************************************/ | ||
/**************************************************************************/ | ||
|
||
|
||
/**************************************************************************/ | ||
/* */ | ||
/* PORT SPECIFIC C INFORMATION RELEASE */ | ||
/* */ | ||
/* nx_user.h PORTABLE C */ | ||
/* 6.0 */ | ||
/* */ | ||
/* AUTHOR */ | ||
/* */ | ||
/* Yuxin Zhou, Microsoft Corporation */ | ||
/* */ | ||
/* DESCRIPTION */ | ||
/* */ | ||
/* This file contains user defines for configuring NetX in specific */ | ||
/* ways. This file will have an effect only if the application and */ | ||
/* NetX library are built with NX_INCLUDE_USER_DEFINE_FILE defined. */ | ||
/* Note that all the defines in this file may also be made on the */ | ||
/* command line when building NetX library and application objects. */ | ||
/* */ | ||
/* RELEASE HISTORY */ | ||
/* */ | ||
/* DATE NAME DESCRIPTION */ | ||
/* */ | ||
/* 05-19-2020 Yuxin Zhou Initial Version 6.0 */ | ||
/* */ | ||
/**************************************************************************/ | ||
|
||
#ifndef NX_USER_H | ||
#define NX_USER_H | ||
|
||
/* Define the extension to hold the control block for 64-bit mode. */ | ||
#define NX_THREAD_EXTENSION_PTR_SET(a, b) { \ | ||
TX_THREAD *thread_ptr; \ | ||
thread_ptr = (TX_THREAD *) (a); \ | ||
(thread_ptr -> tx_thread_extension_ptr) = (VOID *)(b); \ | ||
} | ||
#define NX_THREAD_EXTENSION_PTR_GET(a, b, c) { \ | ||
NX_PARAMETER_NOT_USED(c); \ | ||
TX_THREAD *thread_ptr; \ | ||
thread_ptr = tx_thread_identify(); \ | ||
while(1)\ | ||
{ \ | ||
if (thread_ptr -> tx_thread_extension_ptr) \ | ||
{ \ | ||
(a) = (b *)(thread_ptr -> tx_thread_extension_ptr); \ | ||
break; \ | ||
} \ | ||
tx_thread_sleep(1); \ | ||
} \ | ||
} | ||
#define NX_TIMER_EXTENSION_PTR_SET(a, b) { \ | ||
TX_TIMER *timer_ptr; \ | ||
timer_ptr = (TX_TIMER *) (a); \ | ||
(timer_ptr -> tx_timer_internal.tx_timer_internal_extension_ptr) = (VOID *)(b); \ | ||
} | ||
#define NX_TIMER_EXTENSION_PTR_GET(a, b, c) { \ | ||
NX_PARAMETER_NOT_USED(c); \ | ||
if (!_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr) \ | ||
return; \ | ||
(a) = (b *)(_tx_timer_expired_timer_ptr -> tx_timer_internal_extension_ptr); \ | ||
} | ||
|
||
#endif | ||
|
Oops, something went wrong.