Functional Test #7
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
name: "Functional Test" | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
# 11:45 PM UTC every Sunday | |
- cron: '45 23 * * 0' | |
env: | |
SIMULATION: native | |
ENABLE_UNIT_TESTS: true | |
OMIT_DEPRECATED: true | |
BUILDTYPE: release | |
jobs: | |
#Check for duplicate actions. Skips push actions if there is a matching or duplicate pull-request action. | |
check-for-duplicates: | |
runs-on: ubuntu-latest | |
# Map a step output to a job output | |
outputs: | |
should_skip: ${{ steps.skip_check.outputs.should_skip }} | |
steps: | |
- id: skip_check | |
if: ${{ github.repository_owner != 'cFS'}} | |
uses: fkirc/skip-duplicate-actions@master | |
with: | |
concurrent_skipping: 'same_content' | |
skip_after_successful_duplicate: 'true' | |
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]' | |
- id: skip_check_iternal | |
if: ${{ github.repository_owner == 'cFS'}} | |
uses: cFS/skip-duplicate-actions@master | |
with: | |
concurrent_skipping: 'same_content' | |
skip_after_successful_duplicate: 'true' | |
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]' | |
Local-Test-Build: | |
#Continue if check-for-duplicates found no duplicates. Always runs for pull-requests. | |
needs: check-for-duplicates | |
if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }} | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 15 | |
steps: | |
# Checks out a copy of your repository on the ubuntu-latest machine | |
- name: Checkout bundle | |
uses: actions/checkout@v3 | |
with: | |
repository: nasa/cFS | |
submodules: true | |
- name: Checkout submodule | |
uses: actions/checkout@v3 | |
with: | |
path: cfe | |
- name: Check versions | |
run: git submodule | |
# Setup the build system | |
- name: Set up for build | |
run: | | |
cp ./cfe/cmake/Makefile.sample Makefile | |
cp -r ./cfe/cmake/sample_defs sample_defs | |
make prep | |
# Setup the build system | |
- name: Make Install | |
run: make install | |
- name: List cpu1 | |
run: ls build/exe/cpu1/ | |
# Run cFS, send commands to set perf trigger and start perf data, and run functional tests | |
- name: Run cFS | |
run: | | |
./core-cpu1 & | |
sleep 10 | |
../host/cmdUtil --pktid=0x1806 --cmdcode=17 --endian=LE --uint32=3 --uint32=0x40000000 | |
../host/cmdUtil --pktid=0x1806 --cmdcode=14 --endian=LE --uint32=2 | |
../host/cmdUtil --pktid=0x1806 --cmdcode=4 --endian=LE --string="20:CFE_TEST_APP" --string="20:CFE_TestMain" --string="64:cfe_testcase" --uint32=16384 --uint8=0 --uint8=0 --uint16=100 | |
sleep 30 | |
counter=0 | |
while [[ ! -f cf/cfe_test.log ]]; do | |
temp=$(grep -c "BEGIN" cf/cfe_test.tmp) | |
if [ $temp -eq $counter ]; then | |
echo "Test is frozen. Quitting" | |
break | |
fi | |
counter=$(grep -c "BEGIN" cf/cfe_test.tmp) | |
echo "Waiting for CFE Tests" | |
sleep 120 | |
done | |
../host/cmdUtil --endian=LE --pktid=0x1806 --cmdcode=2 --half=0x0002 | |
working-directory: ./build/exe/cpu1/ | |
- name: Archive cFS Startup Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: cFS-startup-log-deprecate-true-${{ matrix.buildtype }} | |
path: ./build/exe/cpu1/cf/cfe_test.log | |
- name: Check for cFS Warnings | |
run: | | |
if [[ -z $(grep -i "SUMMARY.*FAIL::0.*TSF::0.*TTF::0" cf/cfe_test.log) ]]; then | |
echo "Must resolve Test Failures in cFS Test App before submitting a pull request" | |
echo "" | |
grep -i '\[ FAIL]\|\[ TSF]\|\[ TTF]' cf/cfe_test.log | |
exit -1 | |
fi | |
working-directory: ./build/exe/cpu1/ |