Skip to content

Commit

Permalink
RDK-47358:Merge Contract tests to main
Browse files Browse the repository at this point in the history
Reason for change: Merge to main
Test Procedure: Verify ripple contracts are getting verified
Risks: Low
Priority: P1
  • Loading branch information
srikanth-vv committed Apr 24, 2024
1 parent aa058b2 commit 30ab337
Show file tree
Hide file tree
Showing 19 changed files with 948 additions and 14 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/L1-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,8 @@ jobs:
- name: Generate coverage
if: ${{ matrix.coverage == 'with-coverage' && !env.ACT }}
run: >
cp ${{github.workspace}}/rdkservices/Tests/L1Tests/.lcovrc_l1 ~/.lcovrc
&&
lcov -c
-o coverage.info
-d build/rdkservices
Expand Down
42 changes: 41 additions & 1 deletion .github/workflows/L2-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
with:
path: rdkservices

- name: Apply patch
- name: Apply patch Thunder
run: >
cd "${{github.workspace}}/Thunder"
&&
Expand Down Expand Up @@ -113,6 +113,12 @@ jobs:
path: ThunderInterfaces
ref: ${{env.INTERFACES_REF}}

- name: Apply patch ThunderInterfaces
run: >
cd "${{github.workspace}}/ThunderInterfaces"
&&
git apply "${{github.workspace}}/rdkservices/Tests/L2Tests/patches/0001-Add-TextToSpeech-Interface.patch"
- name: Build ThunderInterfaces
run: >
cmake
Expand Down Expand Up @@ -216,6 +222,9 @@ jobs:
-DCMAKE_DISABLE_FIND_PACKAGE_RFC=ON
-DCMAKE_DISABLE_FIND_PACKAGE_RBus=ON
-DPLUGIN_SYSTEMSERVICES=ON
-DPLUGIN_HDCPPROFILE=ON
-DPLUGIN_NETWORK=ON
-DPLUGIN_TEXTTOSPEECH=ON
-DPLUGIN_L2Tests=ON
-DRDK_SERVICE_L2_TEST=ON
-DDS_FOUND=ON
Expand Down Expand Up @@ -270,6 +279,16 @@ jobs:
/tmp/opkg.conf
/tmp/system_service_temp.conf
- name: Download pact_verifier_cli
run: >
echo "Copying pact plugins" &&
sudo mkdir -p ~/.pact/plugins/websockets-0.4.1 &&
sudo cp "${{github.workspace}}/rdkservices/Tests/L2Tests/pact/pact-plugin-websockets" ~/.pact/plugins/websockets-0.4.1/ &&
sudo cp "${{github.workspace}}/rdkservices/Tests/L2Tests/pact/pact-plugin.json" ~/.pact/plugins/websockets-0.4.1/ &&
sudo chmod +x ~/.pact/plugins/websockets-0.4.1/pact-plugin-websockets &&
PATH=${{github.workspace}}/install/usr/bin:${PATH}
${{github.workspace}}/rdkservices/Tests/L2Tests/pact/install-verifier-cli.sh
- name: Run unit tests without valgrind
run: >
PATH=${{github.workspace}}/install/usr/bin:${PATH}
Expand All @@ -293,6 +312,8 @@ jobs:
- name: Generate coverage
if: ${{ matrix.coverage == 'with-coverage' && !env.ACT }}
run: >
cp ${{github.workspace}}/rdkservices/Tests/L2Tests/.lcovrc_l2 ~/.lcovrc
&&
lcov -c
-o coverage.info
-d build/rdkservices
Expand Down Expand Up @@ -321,3 +342,22 @@ jobs:
coverage/
valgrind_log
if-no-files-found: warn

- name: Run contract tests
if: ${{ !env.ACT }}
env:
PACTFLOW_TOKEN: ${{ secrets.PACTFLOW_TOKEN }}
run: >
PATH=$GITHUB_WORKSPACE/install/usr/bin:${PATH}
LD_LIBRARY_PATH=$GITHUB_WORKSPACE/install/usr/lib:$GITHUB_WORKSPACE/install/usr/lib/wpeframework/plugins:${LD_LIBRARY_PATH}
RdkServicesL2Test CTVerifierMain
- name: Upload contract test results
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v3
with:
name: Contract test results
path: |
contract-test-results.json
contract-test-statistics.txt
if-no-files-found: warn
11 changes: 11 additions & 0 deletions HdcpProfile/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,17 @@ endif (USE_THUNDER_R4)
find_package(DS)
find_package(IARMBus)

if (RDK_SERVICE_L2_TEST)
message ("L2 test Enabled")
find_library(TESTMOCKLIB_LIBRARIES NAMES TestMocklib)
if (TESTMOCKLIB_LIBRARIES)
message ("linking mock libraries ${TESTMOCKLIB_LIBRARIES} library")
target_link_libraries(${MODULE_NAME} PRIVATE ${TESTMOCKLIB_LIBRARIES})
else (TESTMOCKLIB_LIBRARIES)
message ("Require ${TESTMOCKLIB_LIBRARIES} library")
endif (TESTMOCKLIB_LIBRARIES)
endif()

target_include_directories(${MODULE_NAME} PRIVATE ${IARMBUS_INCLUDE_DIRS})
target_include_directories(${MODULE_NAME} PRIVATE ${DS_INCLUDE_DIRS})
target_include_directories(${MODULE_NAME} PRIVATE ../helpers)
Expand Down
11 changes: 11 additions & 0 deletions Network/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,17 @@ set_target_properties(${MODULE_NAME} PROPERTIES

find_package(IARMBus)

if (RDK_SERVICE_L2_TEST)
message ("L2 test Enabled")
find_library(TESTMOCKLIB_LIBRARIES NAMES TestMocklib)
if (TESTMOCKLIB_LIBRARIES)
message ("linking mock libraries ${TESTMOCKLIB_LIBRARIES} library")
target_link_libraries(${MODULE_NAME} PRIVATE ${TESTMOCKLIB_LIBRARIES})
else (TESTMOCKLIB_LIBRARIES)
message ("Require ${TESTMOCKLIB_LIBRARIES} library")
endif (TESTMOCKLIB_LIBRARIES)
endif()

add_definitions (-DNET_DEFINED_INTERFACES_ONLY)
target_include_directories(${MODULE_NAME} PRIVATE ${IARMBUS_INCLUDE_DIRS})
target_include_directories(${MODULE_NAME} PRIVATE ../helpers)
Expand Down
18 changes: 9 additions & 9 deletions SystemServices/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,15 @@ else (RFC_FOUND)
endif (RFC_FOUND)

if (RDK_SERVICE_L2_TEST)
message ("L2 test Enabled")
find_library(TESTMOCKLIB_LIBRARIES NAMES TestMocklib)
if (TESTMOCKLIB_LIBRARIES)
message ("linking mock libraries ${TESTMOCKLIB_LIBRARIES} library")
target_link_libraries(${MODULE_NAME} PRIVATE ${TESTMOCKLIB_LIBRARIES})
else (TESTMOCKLIB_LIBRARIES)
message ("Require ${TESTMOCKLIB_LIBRARIES} library")
endif (TESTMOCKLIB_LIBRARIES)
endif (RDK_SERVICES_L2_TEST)
message ("L2 test Enabled")
find_library(TESTMOCKLIB_LIBRARIES NAMES TestMocklib)
if (TESTMOCKLIB_LIBRARIES)
message ("linking mock libraries ${TESTMOCKLIB_LIBRARIES} library")
target_link_libraries(${MODULE_NAME} PRIVATE ${TESTMOCKLIB_LIBRARIES})
else (TESTMOCKLIB_LIBRARIES)
message ("Require ${TESTMOCKLIB_LIBRARIES} library")
endif (TESTMOCKLIB_LIBRARIES)
endif()


target_include_directories(${MODULE_NAME} PRIVATE ../helpers)
Expand Down
181 changes: 181 additions & 0 deletions Tests/L1Tests/.lcovrc_l1
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
#
# /etc/lcovrc - system-wide defaults for LCOV
#
# To change settings for a single user, place a customized copy of this file
# at location ~/.lcovrc
#

# Specify an external style sheet file (same as --css-file option of genhtml)
#genhtml_css_file = gcov.css

# Specify coverage rate limits (in %) for classifying file entries
# HI: hi_limit <= rate <= 100 graph color: green
# MED: med_limit <= rate < hi_limit graph color: orange
# LO: 0 <= rate < med_limit graph color: red
genhtml_hi_limit = 75
genhtml_med_limit = 50

# Width of line coverage field in source code view
genhtml_line_field_width = 12

# Width of branch coverage field in source code view
genhtml_branch_field_width = 16

# Width of overview image (used by --frames option of genhtml)
genhtml_overview_width = 80

# Resolution of overview navigation: this number specifies the maximum
# difference in lines between the position a user selected from the overview
# and the position the source code window is scrolled to (used by --frames
# option of genhtml)
genhtml_nav_resolution = 4

# Clicking a line in the overview image should show the source code view at
# a position a bit further up so that the requested line is not the first
# line in the window. This number specifies that offset in lines (used by
# --frames option of genhtml)
genhtml_nav_offset = 10

# Do not remove unused test descriptions if non-zero (same as
# --keep-descriptions option of genhtml)
genhtml_keep_descriptions = 0

# Do not remove prefix from directory names if non-zero (same as --no-prefix
# option of genhtml)
genhtml_no_prefix = 0

# Do not create source code view if non-zero (same as --no-source option of
# genhtml)
genhtml_no_source = 0

# Replace tabs with number of spaces in source view (same as --num-spaces
# option of genhtml)
genhtml_num_spaces = 8

# Highlight lines with converted-only data if non-zero (same as --highlight
# option of genhtml)
genhtml_highlight = 0

# Include color legend in HTML output if non-zero (same as --legend option of
# genhtml)
genhtml_legend = 0

# Use FILE as HTML prolog for generated pages (same as --html-prolog option of
# genhtml)
#genhtml_html_prolog = FILE

# Use FILE as HTML epilog for generated pages (same as --html-epilog option of
# genhtml)
#genhtml_html_epilog = FILE

# Use custom filename extension for pages (same as --html-extension option of
# genhtml)
#genhtml_html_extension = html

# Compress all generated html files with gzip.
#genhtml_html_gzip = 1

# Include sorted overview pages (can be disabled by the --no-sort option of
# genhtml)
genhtml_sort = 1

# Include function coverage data display (can be disabled by the
# --no-func-coverage option of genhtml)
#genhtml_function_coverage = 1

# Include branch coverage data display (can be disabled by the
# --no-branch-coverage option of genhtml)
#genhtml_branch_coverage = 1

# Specify the character set of all generated HTML pages
genhtml_charset=UTF-8

# Allow HTML markup in test case description text if non-zero
genhtml_desc_html=0

# Specify the precision for coverage rates
#genhtml_precision=1

# Show missed counts instead of hit counts
#genhtml_missed=1

# Demangle C++ symbols
#genhtml_demangle_cpp=1

# Name of the tool used for demangling C++ function names
#genhtml_demangle_cpp_tool = c++filt

# Specify extra parameters to be passed to the demangling tool
#genhtml_demangle_cpp_params = ""

# Location of the gcov tool (same as --gcov-info option of geninfo)
#geninfo_gcov_tool = gcov

# Adjust test names to include operating system information if non-zero
#geninfo_adjust_testname = 0

# Calculate checksum for each source code line if non-zero (same as --checksum
# option of geninfo if non-zero, same as --no-checksum if zero)
#geninfo_checksum = 1

# Specify whether to capture coverage data for external source files (can
# be overridden by the --external and --no-external options of geninfo/lcov)
#geninfo_external = 1

# Enable libtool compatibility mode if non-zero (same as --compat-libtool option
# of geninfo if non-zero, same as --no-compat-libtool if zero)
#geninfo_compat_libtool = 0

# Use gcov's --all-blocks option if non-zero
#geninfo_gcov_all_blocks = 1

# Specify compatiblity modes (same as --compat option of geninfo).
#geninfo_compat = libtool=on, hammer=auto, split_crc=auto

# Adjust path to source files by removing or changing path components that
# match the specified pattern (Perl regular expression format)
#geninfo_adjust_src_path = /tmp/build => /usr/src

# Specify if geninfo should try to automatically determine the base-directory
# when collecting coverage data.
geninfo_auto_base = 1

# Use gcov intermediate format? Valid values are 0, 1, auto
geninfo_intermediate = auto

# Specify if exception branches should be excluded from branch coverage.
geninfo_no_exception_branch = 0

# Directory containing gcov kernel files
# lcov_gcov_dir = /proc/gcov

# Location of the insmod tool
lcov_insmod_tool = /sbin/insmod

# Location of the modprobe tool
lcov_modprobe_tool = /sbin/modprobe

# Location of the rmmod tool
lcov_rmmod_tool = /sbin/rmmod

# Location for temporary directories
lcov_tmp_dir = /tmp

# Show full paths during list operation if non-zero (same as --list-full-path
# option of lcov)
lcov_list_full_path = 0

# Specify the maximum width for list output. This value is ignored when
# lcov_list_full_path is non-zero.
lcov_list_width = 80

# Specify the maximum percentage of file names which may be truncated when
# choosing a directory prefix in list output. This value is ignored when
# lcov_list_full_path is non-zero.
lcov_list_truncate_max = 20

# Specify if function coverage data should be collected and processed.
lcov_function_coverage = 1

# Specify if branch coverage data should be collected and processed.
lcov_branch_coverage = 0
Loading

0 comments on commit 30ab337

Please sign in to comment.