On 7 Mar 2023, at 18:01, Ilya Maximets wrote:

> On 2/28/23 16:52, Eelco Chaudron wrote:
>> Run "make check-offloads" as part of the GitHub actions tests.
>>
>> This test was run 25 times using GitHub actions, and the
>> failing rerun test cases where excluded. There are quite some
>> first-run failures, but unfortunately, there is no other
>> more stable kernel available as a GitHub-hosted runner.
>>
>> Did not yet include sanitizers in the run, as it's causing
>> the test to run too long >30min and there seems to be (timing)
>> issues with some of the tests.
>>
>> Signed-off-by: Eelco Chaudron <[email protected]>
>> ---
>> v2: Added a new test keyword to exclude the failing tests.
>>     Added some documentation around the keyword usage.
>>
>>  .ci/linux-build.sh                   |    6 +++++-
>>  .github/workflows/build-and-test.yml |   10 +++++++++-
>>  Documentation/topics/testing.rst     |   16 ++++++++++++++++
>>  tests/system-offloads-traffic.at     |    3 +++
>>  tests/system-traffic.at              |    2 ++
>>  5 files changed, 35 insertions(+), 2 deletions(-)
>>
>> diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
>> index 6394a8137..19ed9796d 100755
>> --- a/.ci/linux-build.sh
>> +++ b/.ci/linux-build.sh
>> @@ -159,7 +159,7 @@ fi
>>
>>  OPTS="${EXTRA_OPTS} ${OPTS} $*"
>>
>> -if [ "$TESTSUITE" ]; then
>> +if [ "$TESTSUITE" = 'test' ]; then
>>      # 'distcheck' will reconfigure with required options.
>>      # Now we only need to prepare the Makefile without sparse-wrapped CC.
>>      configure_ovs
>> @@ -169,6 +169,10 @@ if [ "$TESTSUITE" ]; then
>>          TESTSUITEFLAGS=-j4 RECHECK=yes
>>  else
>>      build_ovs
>> +    if [ -n "$TESTSUITE" ]; then
>> +        sudo -E PATH="$PATH" make "$TESTSUITE" TESTSUITEFLAGS="$TEST_OPTS" \
>> +            RECHECK=yes
>> +    fi
>>  fi
>>
>>  exit 0
>> diff --git a/.github/workflows/build-and-test.yml 
>> b/.github/workflows/build-and-test.yml
>> index 86e594bf3..45326b659 100644
>> --- a/.github/workflows/build-and-test.yml
>> +++ b/.github/workflows/build-and-test.yml
>> @@ -17,6 +17,7 @@ jobs:
>>        OPTS:        ${{ matrix.opts }}
>>        SANITIZERS:  ${{ matrix.sanitizers }}
>>        TESTSUITE:   ${{ matrix.testsuite }}
>> +      TEST_OPTS:   ${{ matrix.test_opts }}
>>
>>      name: linux ${{ join(matrix.*, ' ') }}
>>      runs-on: ubuntu-22.04
>> @@ -86,6 +87,10 @@ jobs:
>>              m32:          m32
>>              opts:         --disable-ssl
>>
>> +          - compiler:     gcc
>> +            testsuite:    check-offloads
>> +            test_opts:    "-k !github_offloads_skip"
>> +
>>      steps:
>>      - name: checkout
>>        uses: actions/checkout@v3
>> @@ -147,7 +152,10 @@ jobs:
>>          # So, we're just archiving everything here to avoid any issues.
>>          mkdir logs
>>          cp config.log ./logs/
>> -        cp -r ./*/_build/sub/tests/testsuite.* ./logs/ || true
>> +        sudo chown -R $USER ./tests/testsuite.* \
>> +                            ./tests/system-offloads-testsuite.* || true
>> +        cp -r ./tests/testsuite.* ./logs/ || true
>
> This seems suspicious because distcheck builds and runs tests in a different 
> directory.

You are right, I messed this up :( Will fix it in the next version, currently 
running some “failures” to make sure it works for both type of tests.

>> +        cp -r ./tests/system-offloads-testsuite.* ./logs/ || true
>>          tar -czvf logs.tgz logs/
>>
>>      - name: upload logs on failure
>> diff --git a/Documentation/topics/testing.rst 
>> b/Documentation/topics/testing.rst
>> index 5f6940b84..d06167ee3 100644
>> --- a/Documentation/topics/testing.rst
>> +++ b/Documentation/topics/testing.rst
>> @@ -114,6 +114,22 @@ And from another window, one can execute ovs-xxx 
>> commands like::
>>
>>  Once done with investigation, press ENTER to perform cleanup operation.
>>
>> +GitHub actions
>> +++++++++++++++
>
> Empty line should be here.

Added in v3.

>> +The OVS GitHub repository also runs some of these unit tests through GitHub
>> +actions. These tests are defined in the
>> +``ovs/.github/workflows/build-and-test.yml`` file.
>> +
>> +Based on the GitHub runners available, not all tests will work. In these 
>> cases,
>> +the AT_KEYWORDS() macro can be used. For example, to skip a
>> +``make check-offloads`` test, use the ``github_offloads_skip`` keyword.
>> +
>> +Only use these keywords if no other way to skip the test is available.
>
> s/skip/fix or skip/ maybe?

Added in v3.

<SNIP>

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to