-
Notifications
You must be signed in to change notification settings - Fork 28
RDK-59367: Sync up xdialserver changes from RDKE #170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 25Q3_sprint
Are you sure you want to change the base?
Changes from all commits
65a7559
f710c87
8efac8e
fda6ec5
d16879c
33ed34b
55650a2
f6c6d7d
42da7af
84b8951
36f386d
9257820
a503f9e
974beb6
4a4ea54
a52d864
8e05add
8a97f28
81f4b89
024882a
6750eba
82a6e05
83a1518
a1da8a4
33b4866
c66ef14
8cb0f37
7302ede
25a6735
3202ca6
206d137
c48dff7
3da15c8
29f6789
48461dc
6500318
a2496f0
d0acf46
029b13e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # These owners will be the default owners for everything in | ||
| # the repo. Unless a later match takes precedence, | ||
| # @global-owner1 and @global-owner2 will be requested for | ||
| # review when someone opens a pull request. | ||
| * @rdkcentral/xdialserver-maintainers |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,252 @@ | ||
| name: L1-tests | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - develop | ||
| - main | ||
| pull_request: | ||
| branches: | ||
| - develop | ||
| - main | ||
| workflow_call: | ||
| secrets: | ||
| RDKCM_RDKE: | ||
| required: true | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| env: | ||
| BUILD_TYPE: Debug | ||
|
|
||
| jobs: | ||
| L1-tests: | ||
| name: Build and run unit tests | ||
| runs-on: ubuntu-22.04 | ||
|
|
||
| steps: | ||
| - name: Set up CMake | ||
| uses: jwlawson/actions-setup-cmake@v1.13 | ||
| with: | ||
| cmake-version: '3.16.x' | ||
| github-api-token: '' | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@v4 | ||
| with: | ||
| python-version: '3.x' | ||
| - run: pip install jsonref | ||
|
|
||
| - name: ACK External Trigger | ||
| run: | | ||
| echo "Message: External Trigger Received for L1 Tests" | ||
| echo "Trigger Source: ${{ inputs.caller_source }}" | ||
|
|
||
| - name: Set up CMake | ||
| uses: jwlawson/actions-setup-cmake@v1.13 | ||
Check warningCode scanning / CodeQL Unpinned tag for a non-immutable Action in workflow or composite action Medium
Unpinned 3rd party Action 'L1-tests' step
Uses Step Error loading related location Loading |
||
| with: | ||
| cmake-version: '3.16.x' | ||
|
|
||
| - name: Install packages | ||
| run: > | ||
| sudo apt update | ||
| && | ||
| sudo apt install -y | ||
| autoconf automake libtool pkg-config | ||
| libgtest-dev libgmock-dev | ||
| build-essential g++ cmake | ||
| valgrind lcov clang ninja-build | ||
| libglib2.0-dev libdbus-1-dev | ||
| libgssdp-1.2-dev libsoup2.4-dev libxml2-dev | ||
| uuid-dev libcurl4-openssl-dev | ||
| libsystemd-dev libboost-all-dev libwebsocketpp-dev | ||
| meson libcunit1 libcunit1-dev curl | ||
| protobuf-compiler-grpc libgrpc-dev libgrpc++-dev | ||
| libyajl-dev | ||
|
|
||
| - name: Build trower-base64 | ||
| run: | | ||
| if [ ! -d "trower-base64" ]; then | ||
| git clone https://github.com/xmidt-org/trower-base64.git | ||
| fi | ||
| cd trower-base64 | ||
| meson setup --warnlevel 3 --werror build | ||
| ninja -C build | ||
| sudo ninja -C build install | ||
|
|
||
| - name: Checkout xdialserver | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| path: xdialserver | ||
|
|
||
| # - name: Checkout entservices-testframework | ||
| # uses: actions/checkout@v3 | ||
| # with: | ||
| # repository: rdkcentral/entservices-testframework | ||
| # path: entservices-testframework | ||
| # token: ${{ secrets.RDKCM_RDKE }} | ||
| # ref: feature/RDKEMW-14961-2 | ||
|
|
||
| - name: Checkout googletest | ||
| uses: actions/checkout@v3 | ||
| with: | ||
| repository: google/googletest | ||
| path: googletest | ||
| ref: v1.15.0 | ||
|
|
||
| - name: Build googletest | ||
| run: | | ||
| cmake -S "$GITHUB_WORKSPACE/googletest" \ | ||
| -B build/googletest \ | ||
| -DCMAKE_INSTALL_PREFIX="$GITHUB_WORKSPACE/install/usr" \ | ||
| -DBUILD_GMOCK=ON \ | ||
| -DBUILD_SHARED_LIBS=OFF \ | ||
| -DCMAKE_POSITION_INDEPENDENT_CODE=ON | ||
| cmake --build build/googletest -j$(nproc) | ||
| cmake --install build/googletest | ||
|
|
||
| # - name: Generate external headers | ||
| # # Empty headers to mute errors | ||
| # run: > | ||
| # cd "$GITHUB_WORKSPACE/entservices-testframework/Tests/" | ||
| # && | ||
| # mkdir -p | ||
| # headers | ||
| # headers/WPEFramework | ||
| # headers/WPEFramework/core | ||
| # headers/WPEFramework/interfaces | ||
| # headers/rdk/iarmbus | ||
| # headers/rdk/iarmmgrs-hal | ||
| # headers/uuid | ||
| # && | ||
| # cd headers | ||
| # && | ||
| # touch | ||
| # WPEFramework/core.h | ||
| # WPEFramework/interfaces.h | ||
| # WPEFramework/plugins.h | ||
| # rdk/iarmbus/libIBus.h | ||
| # rdk/iarmbus/libIBusDaemon.h | ||
| # rdk/iarmmgrs-hal/iarmmgrs_hal.h | ||
| # uuid/uuid.h | ||
| # && | ||
| # mkdir -p proc | ||
| # && | ||
| # touch proc/readproc.h | ||
|
|
||
| - name: Generate stub headers | ||
| # Individual shadow headers that source files #include are generated | ||
| # here as thin wrappers so they never need to be committed. | ||
| # Truly empty stubs are created with touch. | ||
| # C++ shim definitions for gdial.cpp live in | ||
| # tests/L1Tests/stubs/gdial_cpp_test_stubs.hpp and are included by | ||
| # lightweight wrappers generated here. | ||
| run: | | ||
| STUBS="$GITHUB_WORKSPACE/xdialserver/tests/L1Tests/stubs" | ||
| WRAPPER='#pragma once' | ||
| CPP_WRAPPER='#pragma once\n#include "gdial_cpp_test_stubs.hpp"' | ||
|
|
||
| # Create stubs directory if it doesn't exist | ||
| mkdir -p "$STUBS" | ||
|
|
||
| # Shadow headers: block the real headers and redirect to the | ||
| # combined stub. | ||
| for f in \ | ||
| libIBus.h libIARMCore.h; do | ||
| printf "$WRAPPER\n" > "$STUBS/$f" | ||
| done | ||
|
|
||
| # Empty stubs: headers from WPEFramework and IARM that are unused | ||
| # in the test paths. | ||
| touch \ | ||
| "$STUBS/libIARMBus.h" \ | ||
| "$STUBS/libIBusDaemon.h" \ | ||
| "$STUBS/libIARMUtil.h" | ||
|
|
||
| # gdial.cpp wrappers: keep source definitions in a committed mock | ||
| # file and generate only include shims here. | ||
| mkdir -p "$STUBS/com" "$STUBS/json" "$STUBS/securityagent" | ||
| for f in core.h plugins.h securityagent/SecurityTokenUtil.h; do | ||
| printf "$CPP_WRAPPER\n" > "$STUBS/$f" | ||
| done | ||
|
|
||
| # Truly empty stubs for unused headers. | ||
| touch \ | ||
| "$STUBS/com/Ids.h" \ | ||
| "$STUBS/json/JsonData_Netflix.h" \ | ||
| "$STUBS/json/JsonData_StateControl.h" | ||
|
|
||
| - name: Build xdialserver L1 tests | ||
| run: | | ||
| cd "$GITHUB_WORKSPACE/xdialserver" | ||
| autoreconf -if | ||
|
|
||
| # Compiler / linker flags for coverage instrumentation | ||
| export CFLAGS="-fprofile-arcs -ftest-coverage -g -O0" | ||
| export CXXFLAGS="-fprofile-arcs -ftest-coverage -g -O0" | ||
| export LDFLAGS="--coverage" | ||
|
|
||
| # Tell pkg-config / the build where to find googletest | ||
| export PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/usr/lib/pkgconfig:${PKG_CONFIG_PATH:-}" | ||
| export CPPFLAGS="-I$GITHUB_WORKSPACE/install/usr/include" | ||
| export LIBRARY_PATH="$GITHUB_WORKSPACE/install/usr/lib:${LIBRARY_PATH:-}" | ||
|
|
||
| ./configure --enable-l1tests | ||
| # TESTFRAMEWORK_DIR="$GITHUB_WORKSPACE/entservices-testframework" | ||
| make -C tests/L1Tests | ||
|
|
||
| - name: Run unit tests without valgrind | ||
| run: | | ||
| cd "$GITHUB_WORKSPACE/xdialserver/tests/L1Tests" | ||
| ./run_L1Tests --gtest_output="json:$GITHUB_WORKSPACE/xdialserverL1TestResults.json" | ||
| cp "$GITHUB_WORKSPACE/xdialserverL1TestResults.json" \ | ||
| "$GITHUB_WORKSPACE/xdialserverL1TestResultsWithoutValgrind.json" | ||
|
|
||
| - name: Run unit tests with valgrind | ||
| if: ${{ !env.ACT }} | ||
| run: | | ||
| cd "$GITHUB_WORKSPACE/xdialserver/tests/L1Tests" | ||
| valgrind \ | ||
| --tool=memcheck \ | ||
| --log-file="$GITHUB_WORKSPACE/valgrind_log" \ | ||
| --leak-check=yes \ | ||
| --show-reachable=yes \ | ||
| --track-fds=yes \ | ||
| --fair-sched=try \ | ||
| ./run_L1Tests --gtest_output="json:$GITHUB_WORKSPACE/xdialserverL1TestResultsWithValgrind.json" | ||
|
|
||
| - name: Generate coverage | ||
| if: ${{ !env.ACT }} | ||
| run: | | ||
| lcov -c \ | ||
| -o coverage.info \ | ||
| -d "$GITHUB_WORKSPACE/xdialserver" | ||
|
|
||
| lcov -r coverage.info \ | ||
| '/usr/include/*' \ | ||
| '*/install/usr/include/*' \ | ||
| '*/googletest/*' \ | ||
| '*/entservices-testframework/*' \ | ||
| '*/tests/*' \ | ||
| '*/mocks/*' \ | ||
| '*/stubs/*' \ | ||
| -o filtered_coverage.info | ||
|
|
||
| genhtml \ | ||
| -o coverage \ | ||
| -t "xdialserver L1 coverage" \ | ||
| filtered_coverage.info | ||
|
|
||
| - name: Upload artifacts | ||
| if: ${{ !env.ACT }} | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: artifacts-L1-xdialserver | ||
| path: | | ||
| coverage/ | ||
| valgrind_log | ||
| xdialserverL1TestResultsWithoutValgrind.json | ||
| xdialserverL1TestResultsWithValgrind.json | ||
| if-no-files-found: warn | ||
| Original file line number | Diff line number | Diff line change | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,25 @@ | |||||||||||||||||||||||||||||
| name: Build Component in Native Environment | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| on: | |||||||||||||||||||||||||||||
| push: | |||||||||||||||||||||||||||||
| branches: [ main, 'sprint/**', 'release/**', topic/*, develop ] | |||||||||||||||||||||||||||||
| pull_request: | |||||||||||||||||||||||||||||
| branches: [ main, 'sprint/**', 'release/**', topic/*, develop ] | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| jobs: | |||||||||||||||||||||||||||||
| build-entservices-on-pr: | |||||||||||||||||||||||||||||
| name: Build xdialserver component in github rdkcentral | |||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | |||||||||||||||||||||||||||||
| container: | |||||||||||||||||||||||||||||
| image: ubuntu:22.04 | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| steps: | |||||||||||||||||||||||||||||
| - name: Checkout code | |||||||||||||||||||||||||||||
| uses: actions/checkout@v3 | |||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||
| - name: native build | |||||||||||||||||||||||||||||
| run: | | |||||||||||||||||||||||||||||
| sh -x build_dependencies.sh | |||||||||||||||||||||||||||||
| sh -x cov_build.sh | |||||||||||||||||||||||||||||
| env: | |||||||||||||||||||||||||||||
| GITHUB_TOKEN: ${{ secrets.RDKCM_RDKE }} | |||||||||||||||||||||||||||||
|
Comment on lines
+11
to
+25
Check warningCode scanning / CodeQL Workflow does not contain permissions Medium
Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Copilot AutofixAI 5 months ago In general, the problem is fixed by explicitly setting the least-privilege The best fix here, without changing existing functionality, is to add a minimal permissions:
contents: readindented to align with
Suggested changeset
1
.github/workflows/native_full_build.yml
Copilot is powered by AI and may make mistakes. Always verify output.
Refresh and try again.
|
|||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| ########################################################################## | ||
| # If not stated otherwise in this file or this component's LICENSE | ||
| # file the following copyright and licenses apply: | ||
| # | ||
| # Copyright 2019 RDK Management | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
| ########################################################################## | ||
|
|
||
| SUBDIRS = tests |
Check warning
Code scanning / CodeQL
Unpinned tag for a non-immutable Action in workflow or composite action Medium