Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
8db7b42
Added add-to-project workflow
RichLandau Aug 27, 2024
4844ef3
Merge remote-tracking branch 'opensource/main' into dev
dzbaker Nov 5, 2024
a3042d2
Merge pull request #7 from cFS/open-source-updates
dzbaker Nov 5, 2024
fd9c520
[#4] first commit of VxWorks 7 RTP support - modified posix
alanc-gsfc Nov 5, 2024
0398814
[#4] updated posix default file flags - changed from O_NONBLOCK to 0 …
alanc-gsfc Nov 6, 2024
f7fa960
[#4] Created separate implementation for VxWorks 7 RTP filesys. This …
alanc-gsfc Nov 13, 2024
7cabfd2
[#4] comment clean up
alanc-gsfc Nov 13, 2024
90b0279
[#4] created a separate OSAL implementation directory, for vxworks-rt…
alanc-gsfc Nov 15, 2024
5ab0b4b
[#4] removed conditional compilation for VxWorks 7
alanc-gsfc Nov 18, 2024
8282022
[#4] created separate version of os-impl-files.c for VxWorks RTP so L…
alanc-gsfc Nov 18, 2024
671e40e
Merge pull request #8 from cFS/fix-4-add-vxworks-rtp-support
alanc-gsfc Nov 19, 2024
c2c826a
Add QNX operating system OSAL and BSP support
dmolock-NASA Dec 2, 2024
bad856d
Fix #10, Update VxWorks Tests
arielswalker Dec 5, 2024
175d2bb
Fix #21, Update GitHub Pipelines
arielswalker Dec 2, 2024
b524916
Fix #13, add API to get/set socket options
jphickey Dec 10, 2024
585cf6d
Merge pull request #11 from cFS/fix-10-update-vxworks-tests
arielswalker Dec 10, 2024
3943cbf
Merge pull request #12 from cFS/osal-6-add-qnx-support
dmolock-NASA Dec 10, 2024
4c9bdce
Merge pull request #9 from cFS/fix-21-github-pipelines
arielswalker Dec 10, 2024
4bffcf2
Merge remote-tracking branch 'opensource/main' into dev
dzbaker Dec 11, 2024
6c82c1e
Merge pull request #15 from cFS/open-source-updates
dzbaker Dec 11, 2024
a05985e
Fix #19, Remove Cache for Standalone Build
arielswalker Jan 16, 2025
d3a38cd
Fix cFS/cFS#4, Add MCDC Pipeline
arielswalker Jan 14, 2025
dc42732
Merge pull request #20 from cFS/fix-19-standalone-cache
arielswalker Jan 21, 2025
318a2f6
Merge pull request #18 from cFS/fix-4-mcdc-pipelines
arielswalker Jan 21, 2025
ebea4b3
Merge pull request #14 from jphickey/fix-13-getset-dscp
jphickey Jan 30, 2025
c3eaf32
Fix cFS/cFS#56, Add MC/DC Delta
arielswalker Feb 6, 2025
ae1489b
Merge pull request #21 from cFS/fix56-add-mcdc-delta
arielswalker Feb 11, 2025
a9c3a1f
Fix cFS/workflows#7, Provide Clean Workflow Environment
arielswalker Feb 13, 2025
e352e09
Merge pull request #25 from cFS/fix-workflows7-clean-workflow-env
arielswalker Feb 19, 2025
d34937b
Fix #22, Remove Comma at End of Enumerator List
arielswalker Feb 20, 2025
e89a4b6
Fix #29, Add modules.txt in MC/DC Workflow
arielswalker Feb 20, 2025
8ef0b90
Merge pull request #27 from cFS/fix-22-remove-comma-emunerator
arielswalker Feb 20, 2025
fc01d80
Merge pull request #30 from cFS/fix-29-add-modules-txt
arielswalker Feb 20, 2025
06e71e3
Fix #23, Document optval Parameter
arielswalker Feb 20, 2025
d92dccd
Fix cFS/cFS#57, Improve MC/DC coverage
lkebulad Feb 19, 2025
39faf60
Merge pull request #28 from cFS/fix-57-improve-MC/DC-coverage
lkebulad Feb 24, 2025
bd6e9bf
Merge pull request #31 from cFS/fix-23-add-optval-sockprop-arguments
arielswalker Feb 24, 2025
a989eee
Fix cFS/osal#16, Add void keyword to function definitions
lkebulad Feb 25, 2025
3aafc5d
Merge pull request #32 from cFS/fix-16-Add-void-keyword-to-function-d…
lkebulad Feb 25, 2025
a696b57
Merge remote-tracking branch 'opensource/main' into dev
dzbaker Feb 26, 2025
41a27ed
Merge pull request #34 from cFS/open-source-updates
dzbaker Feb 26, 2025
851ebfd
Fix #33, Update Coverage Level
arielswalker Feb 26, 2025
1a8592b
Merge pull request #35 from cFS/fix-33-update-code-coverage-wrkflow
arielswalker Feb 26, 2025
fca9748
Fix #24, Address Sanitizer Issue in Osal Core Test
anhvan989 Feb 14, 2025
e068d70
Merge pull request #26 from cFS/Fix-24-Address-Sanitizer-Osal-Core-Test
anhvan989 Mar 3, 2025
40fe0a4
Fix #37, revise timer test logic to be more reliable
jphickey Mar 4, 2025
4045736
Fix #5, Add monotonic time abstraction to OSAL
jphickey Dec 19, 2024
066becf
Issue cFS/PSP#11, Fixed Unit Tests to add support for QNX Operating S…
dmolock-NASA Feb 28, 2025
4abaa85
Merge pull request #36 from cFS/psp-11-qnx-it-and-verification
dmolock-NASA Mar 4, 2025
ac8c9a3
Fix cFS/workflows#14, Added JSON output to MCDC comment for osal
lkebulad Mar 7, 2025
86eeb3d
Fix cFS/cFS#41, Add CodeSonar Integration
arielswalker Mar 10, 2025
75a757a
Fix cFS/workflows#10, Update MCDC Trigger
arielswalker Mar 11, 2025
9fc42d8
Merge pull request #38 from cFS/fix-37-timer-test
jphickey Mar 13, 2025
008143d
Merge pull request #42 from cFS/fix-workflows10-update-mcdc-trigger
arielswalker Mar 17, 2025
43a6b27
Merge pull request #40 from cFS/fix-14-Add-uncovered-branches
lkebulad Mar 18, 2025
37d05e2
Merge pull request #41 from cFS/fix-cfs41-codesonar-integration
arielswalker Mar 18, 2025
4efc874
Fix #11, modifications to get 'No Network Option' to compile
sbhalwan Mar 24, 2025
93326ac
Merge pull request #44 from cFS/fix-11-no-network-option
sbhalwan Mar 25, 2025
80798ed
Fix #92, Update MIRs
anhvan989 Feb 26, 2025
84d99c7
Merge pull request #45 from cFS/Fix-Disposition-MIRs
anhvan989 Mar 25, 2025
c6826a2
Merge remote-tracking branch 'opensource/main' into dev
dzbaker Mar 27, 2025
d934964
Merge pull request #46 from cFS/open-source-updates
dzbaker Mar 28, 2025
f51d0b6
Merge remote-tracking branch 'opensource/main' into dev
dzbaker Apr 7, 2025
43b6e47
Merge pull request #47 from cFS/open-source-updates
dzbaker Apr 7, 2025
9bb603a
Fix #13, Changed to fix linking issue for network_pc686_rtems module
sbhalwan Apr 14, 2025
a95f473
Fix 13, Deleted the lines causing link issue since not needed
sbhalwan Apr 15, 2025
7f38e2c
Merge pull request #49 from cFS/fix-13-network-module
sbhalwan Apr 16, 2025
8f38326
Merge remote-tracking branch 'opensource/main' into dev
dzbaker Apr 23, 2025
0104bbe
Merge pull request #51 from cFS/open-source-updates
dzbaker Apr 23, 2025
0f3cad6
Fix cFS/cFS#12, Add PR to Project
arielswalker Apr 23, 2025
fc4b6f0
Merge pull request #52 from cFS/fix-cfs12-add-pr-to-project
arielswalker Apr 24, 2025
d9fbeb0
Fix #13, Modify generic-rtems OSAL to be able to use it with RKI
sbhalwan May 21, 2025
c2bfba4
Fix #13, Update cmake file as per review comments
sbhalwan May 22, 2025
f6be6fa
Merge pull request #54 from cFS/fix-13-network-modules-3
sbhalwan May 22, 2025
70380ff
Merge pull request #17 from jphickey/fix-5-monotonic-time
jphickey May 27, 2025
9d96971
Fix cFS/cFS#170, Use Self-Hosted Runners
arielswalker May 27, 2025
9c8eda8
Merge pull request #55 from cFS/fix-cfs170-use-self-hosted-runner
arielswalker Jun 5, 2025
5789f1f
Fix cFS/cFS#116, deprecations in latest Cmake versions
jphickey Jun 9, 2025
621d99a
Merge pull request #57 from cFS/fix-cfs116-cmake-warning
jphickey Jun 11, 2025
ca4e9d9
Fix cFS/cFS#170, Use Workflow Containers
arielswalker Jun 11, 2025
feb9555
Merge pull request #58 from cFS/fix-cfs170-use-containers
arielswalker Jun 11, 2025
770c2f6
Fix #59, add define for monotonic clock on RTEMS
jphickey Jun 11, 2025
e29ad2a
Merge pull request #60 from cFS/fix-59-add-monotonic-define
jphickey Jun 16, 2025
bb44c89
Part cFS/workflows#39, Exclude Draft PRs for Add to Project Workflow
arielswalker Jun 23, 2025
9323757
Merge pull request #65 from cFS/part-workflows39-exclude-draft-prs-ad…
arielswalker Jun 30, 2025
a15d4d7
Fix #71, Update Workflow Coverage Path
arielswalker Jul 3, 2025
6a08e25
Merge pull request #72 from cFS/fix-71-update-workflow-coverage-path
arielswalker Jul 3, 2025
6c1ece6
Fix #56, Add RwLock API & its POSIX implementation
ashirwan-NASA Jun 24, 2025
b86ab34
Part cFS/cFS#222, Use Subset of Workflows on PR
arielswalker Jul 7, 2025
dc3068a
Merge pull request #73 from cFS/part-cfs222-use-subset-of-workflows-o…
arielswalker Jul 8, 2025
9a06436
Merge pull request #66 from cFS/fix-56-rwlock
ashirwan-NASA Jul 8, 2025
5de5ae5
Fix #6, changed from 2 arg open() to 3 arg to prevent command injecti…
Jul 10, 2025
6d6025d
Fix #75, avoid unused variable when DEBUG is off
jphickey Jul 15, 2025
45a2071
Merge remote-tracking branch 'opensource/main' into dev
dzbaker Jul 16, 2025
f829006
Merge pull request #77 from cFS/open-source-updates
dzbaker Jul 16, 2025
a3f1ef2
Merge pull request #74 from cFS/fix-cybersecurity6-command-injection
Jul 17, 2025
d6f0702
Merge pull request #76 from cFS/fix-75-unused-var
jphickey Jul 18, 2025
18d6171
Fix #80, Add OS Monotonic impl to QNX build
alanc-gsfc Aug 7, 2025
53b8ec0
Merge pull request #81 from cFS/fix-80-add-monotonic-impl-to-qnx
alanc-gsfc Aug 7, 2025
b6c2b29
Fix cFS/cFS#197, Added support for QNX SDP 8.0
dmolock-NASA Aug 13, 2025
d57d811
Merge pull request #82 from cFS/197-qnx-sdp8.0-support
dmolock-NASA Aug 19, 2025
94a7440
Fix cFS/cFS#277, Add file allocate and truncate APIs
jphickey Oct 14, 2025
bbb202d
Merge pull request #85 from cFS/fix-cfs277-add-allocate-truncate
jphickey Nov 20, 2025
fb7b335
Fix cFS/cFS#280, add DNS support to OS_SocketAddrFromString
jphickey Oct 14, 2025
8a22278
Merge pull request #84 from cFS/fix-cfs280-getaddrinfo
jphickey Dec 2, 2025
754bb07
Test Draco standalone-build.yml
arielswalker Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/actions/check-coverage/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ runs:
shell: bash
run: lcov
--capture --rc lcov_branch_coverage=1
--include '${{ github.workspace }}/*'
--directory '${{ inputs.binary-dir }}'
--output-file '${{ inputs.binary-dir }}/coverage.info' |
tee '${{ inputs.binary-dir }}/lcov_out.txt'
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/add-to-project-internal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Internal Add Issue or PR to Project

on:
issues:
types: [opened]
pull_request_target:
types: [opened, ready_for_review, converted_to_draft]

jobs:
add-to-project:
name: Add issue or pull request to project
uses: cFS/workflows/.github/workflows/add-to-project-reusable-internal.yml@dev
secrets: inherit
67 changes: 67 additions & 0 deletions .github/workflows/build-osal-documentation-internal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: "Internal Build OSAL Documentation (API Guide)"

on:
push:
pull_request:

jobs:

#Check for duplicate actions. Skips push actions if there is a matching or duplicate pull-request action.
check-for-duplicates:
runs-on: cfs-self-hosted
# Map a step output to a job output
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: synced-actions/skip-duplicate-actions@master
with:
concurrent_skipping: 'same_content'
skip_after_successful_duplicate: 'true'
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'

build-osal-apiguide:
#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: cfs-self-hosted
container:
image: aetd-dockerlab.gsfc.nasa.gov/gsfc-cfs/github-actions-ci-cd/cfsbuildenv-doxygen
timeout-minutes: 15

steps:
- name: Checkout submodule
uses: actions/checkout@v4

- name: Set up for build
run: |
cp Makefile.sample Makefile
make prep

- name: Build OSAL API Guide
run: |
make osal-apiguide 2>&1 > make_osal-apiguide_stdout.txt | tee make_osal-apiguide_stderr.txt
mv build/docs/osal-apiguide-warnings.log osal-apiguide-warnings.log

- name: Archive Osal Guide Build Logs
uses: actions/upload-artifact@v3
with:
name: OSAL Guide Artifacts
path: |
make_osal-apiguide_stdout.txt
make_osal-apiguide_stderr.txt
osal-apiguide-warnings.log

- name: Error Check
run: |
if [[ -s make_osal-apiguide_stderr.txt ]]; then
cat make_osal-apiguide_stderr.txt
exit -1
fi

- name: Warning Check
run: |
if [[ -s osal-apiguide-warnings.log ]]; then
cat osal-apiguide-warnings.log
exit -1
fi
15 changes: 15 additions & 0 deletions .github/workflows/codesonar-internal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Internal CodeSonar

on:
schedule:
- cron: "0 0 * * 1" # Runs every Monday at 12:00 AM UTC
workflow_dispatch:

jobs:
codesonar:
name: Run Codesonar
uses: cFS/workflows/.github/workflows/codesonar-reusable-internal.yml@dev
with:
component-path: cFS # Causes reusable workflow to not checkout bundle
setup: cp Makefile.sample Makefile
secrets: inherit
11 changes: 11 additions & 0 deletions .github/workflows/format-check-internal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Internal Format Check

# Run on all push and pull requests
on:
push:
pull_request:

jobs:
format-check:
name: Run format check
uses: cFS/workflows/.github/workflows/format-check-reusable-internal.yml@dev
239 changes: 239 additions & 0 deletions .github/workflows/mcdc-internal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
name: Internal MCDC Analysis

on:
push:
pull_request_target:

# Force bash to apply pipefail option so pipeline failures aren't masked
defaults:
run:
shell: bash

env:
SIMULATION: native
TESTS_RAN: false

jobs:
# Checks for duplicate actions. Skips push actions if there is a matching or
# duplicate pull-request action.
checks-for-duplicates:
runs-on: cfs-self-hosted
# Map a step output to a job output
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: synced-actions/skip-duplicate-actions@master
with:
concurrent_skipping: 'same_content'
skip_after_successful_duplicate: 'true'
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]'

mcdc:
needs: checks-for-duplicates
if: ${{ needs.checks-for-duplicates.outputs.should_skip != 'true' || contains(github.ref, 'dev') }}
name: Build and Run MCDC
runs-on: cfs-self-hosted
container:
image: aetd-dockerlab.gsfc.nasa.gov/gsfc-cfs/github-actions-ci-cd/cfsbuildenv-mcdc

steps:
- name: Checkout MCDC Script
uses: actions/checkout@v4
with:
repository: cFS/workflows
path: workflows

- name: Checkout OSAL
uses: actions/checkout@v4
with:
path: source

- name: Modify osal to include coverage flags
run: |
sed -i 's/target_compile_options.*)/target_compile_options(ut_coverage_compile INTERFACE -pg -O0 -fprofile-arcs -ftest-coverage -fcondition-coverage -fprofile-abs-path)/' source/src/bsp/generic-linux/CMakeLists.txt
sed -i 's/set(UT_COVERAGE_COMPILE_FLAGS.*)/set(UT_COVERAGE_COMPILE_FLAGS -pg --coverage -O0 -fcondition-coverage -fprofile-abs-path)/' source/src/bsp/generic-linux/build_options.cmake
sed -i 's/set(UT_COVERAGE_LINK_FLAGS.*)/set(UT_COVERAGE_LINK_FLAGS -pg --coverage -O0 -fcondition-coverage -fprofile-abs-path)/' source/src/bsp/generic-linux/build_options.cmake

- name: Set up build
run: cmake
-DCMAKE_BUILD_TYPE=Debug
-DENABLE_UNIT_TESTS=TRUE
-DOSAL_OMIT_DEPRECATED=FALSE
-DOSAL_VALIDATE_API=FALSE
-DOSAL_INSTALL_LIBRARIES=FALSE
-DOSAL_CONFIG_DEBUG_PERMISSIVE_MODE=TRUE
-DOSAL_SYSTEM_BSPTYPE=generic-linux
-DCMAKE_PREFIX_PATH=/usr/lib/cmake
-DCMAKE_INSTALL_PREFIX=/usr
-S source
-B build

- name: Build OSAL
working-directory: build
run: make VERBOSE=1

- name: Execute Tests
working-directory: build
run: |
echo "BASE_DIR=build/unit-test-coverage" >> $GITHUB_ENV
(ctest --output-on-failure -j4 2>&1 || true) | tee ../test_results.txt
echo "TESTS_RAN=true" >> $GITHUB_ENV

- name: Grab test modules
if: ${{ env.TESTS_RAN == 'true' }}
run: |
echo "MODULES=$(grep -oP 'Test\s+#\d+: \K[\w\-\_]+(?= )' test_results.txt | tr '\n' ' ' | sed 's/ $//')" >> $GITHUB_ENV
grep -oP 'Test #\d+: \K[\w\-\_]+' test_results.txt | tr '\n' ' ' | sed 's/ $//' >> modules.txt

- name: Run mcdc analysis
if: ${{ env.TESTS_RAN == 'true' }}
run: bash workflows/.github/scripts/mcdc-analyze.sh

- name: Save PR number
if: github.event_name == 'pull_request_target' && always()
env:
PR_NUMBER: ${{ github.event.number }}
run: echo $PR_NUMBER > pr_number

- name: Archive unit test results
# Upload if success or failure which supports skipping, unlike always()
if: ${{ env.TESTS_RAN == 'true' }}
uses: actions/upload-artifact@v3
with:
name: Unit test results
path: |
test_results.txt

- name: Archive mcdc results
# Upload if success or failure which supports skipping, unlike always()
if: ${{ env.TESTS_RAN == 'true' }}
uses: actions/upload-artifact@v3
with:
name: MCDC results
path: |
**/*.gcov.json.gz
mcdc_results.txt
pr_number
modules.txt

comment-mcdc:
needs: mcdc
if: github.event_name == 'pull_request_target' && always()
name: Comment MCDC Comparision on PR
runs-on: cfs-self-hosted

steps:
- name: Checkout MCDC Script
uses: actions/checkout@v4
with:
repository: cFS/workflows
path: workflows

- name: Download latest main branch artifact
uses: synced-actions/action-download-artifact@v2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
workflow: mcdc-internal.yml
search_artifacts: true
branch: dev
name: MCDC results
path: main-branch-results

- uses: actions/download-artifact@v3
with:
name: MCDC results

- name: Compare main and PR artifacts
run: |
bash workflows/.github/scripts/mcdc-compare.sh main-branch-results/mcdc_results.txt mcdc_results.txt main-branch-results/modules.txt

- name: Comment comparison to pull request
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const path = require('path');
// Adjust the path based on where you see mcdc_results.txt after running the 'ls' command
const mcdcResultsFilePath = path.join(process.env.GITHUB_WORKSPACE, 'mcdc_comment.txt');
const uncoveredFilePath = path.join(process.env.GITHUB_WORKSPACE, 'uncovered.json');

// Debugging: Check if the file exists at the adjusted path
if (!fs.existsSync(mcdcResultsFilePath)) {
console.log('mcdc_comment.txt file not found at path: ' + mcdcResultsFilePath);
return;
}

if (!fs.existsSync(uncoveredFilePath)) {
console.log('uncovered.json file not found at path: ' + uncoveredFilePath);
return;
}

// Read the file content
const mcdcResultsContent = fs.readFileSync(mcdcResultsFilePath, 'utf-8').trim();
const uncoveredContent = fs.readFileSync(uncoveredFilePath, 'utf-8').trim();

// If the file is empty, don't comment
if (mcdcResultsContent === '') {
console.log('mcdc_comment.txt is empty, no comment will be posted.');
return;
}

const mcdcResults = `MC/DC Results:
<pre><code class="language-plaintext">${mcdcResultsContent}
</code></pre>
<details>
<summary>Click to view uncovered branches (uncovered.json)</summary>
<br>
<pre><code class="language-json">${uncoveredContent}
</code></pre>
</details>`;

// Ensure the correct path to the pr_number file after unzipping
const prNumberPath = path.join(process.env.GITHUB_WORKSPACE, 'pr_number');
if (!fs.existsSync(prNumberPath)) {
console.log('pr_number file not found at path: ' + prNumberPath);
return;
}

const prNumber = Number(fs.readFileSync(prNumberPath));
const comments = await github.paginate(
github.rest.issues.listComments,
{
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
}
);

comments.reverse();
const previousComment = comments.find(comment =>
comment.user.login === 'github-actions[bot]'
);

if (previousComment) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: previousComment.id,
body: mcdcResults,
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: mcdcResults,
});
}

- name: Archive mcdc comparison
# Upload if success or failure which supports skipping, unlike always()
if: success() || failure()
uses: actions/upload-artifact@v3
with:
name: MCDC main branch comparison
path: |
mcdc_comment.txt
mcdc_compare.txt
Loading
Loading