Skip to content
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

[SAI-PTF] Add decorator for skipping test on specified error #1609

Merged

Conversation

richardyu-ms
Copy link
Collaborator

@richardyu-ms richardyu-ms commented Sep 25, 2022

Add decorator method in the perl template for skipping test on specified error
try to resolve issue
#1610

details:

  1. add decorator method in sai_adapter_utils.tt
  2. use decorator when set parameters skip_error
  3. add parameters when building from template, like perl -Irpc gensairpc.pl --skip_error=-2,-3

Test done:
GEN_SAIRPC_OPTS="--skip_error=-2,-3" make rpc

@richardyu-ms
Copy link
Collaborator Author

@ravi861 please help make a review, thanks.

@ravi861
Copy link
Contributor

ravi861 commented Sep 27, 2022

While this decorator has its uses, it should not be used to solve the issue raised in #1610 . The correct approach is by verifying if the attribute is supported using sai attribute query capability.

Add decorator method in the perl template  for skipping test on specified error

details:
1. add decorator method in sai_adapter_utils.tt
2. use decorator when set parameters ``skip_error``
3. add parameters when building from template, like ``perl -Irpc gensairpc.pl  --skip_error=-2,-3``
4. remove the new added parameters, add more doc
Test done:
make  rpc

Signed-off-by: richardyu <richardyu@contoso.com>
remove unnecessary test

Signed-off-by: Richard.Yu <richard.yu@microsoft.com>
@richardyu-ms
Copy link
Collaborator Author

While this decorator has its uses, it should not be used to solve the issue raised in #1610 . The correct approach is by verifying if the attribute is supported using sai attribute query capability.

Yes, this is a approach in sai latter than 1.6, but consider we need to use this framework in differernt versions, use this as a first edition, we can make other improvement for different versions of sai

@richardyu-ms richardyu-ms merged commit 13312c6 into opencomputeproject:master Oct 24, 2022
@richardyu-ms richardyu-ms deleted the add_skip_in_adaptor branch October 24, 2022 06:56
richardyu-ms added a commit to richardyu-ms/SAI that referenced this pull request Nov 1, 2022
…puteproject#1609)

* [SAI-PTF] Add decorator for skipping test on specified error

Add decorator method in the perl template  for skipping test on specified error

details:
1. add decorator method in sai_adapter_utils.tt
2. use decorator when set parameters ``skip_error``
3. add parameters when building from template, like ``perl -Irpc gensairpc.pl  --skip_error=-2,-3``
4. remove the new added parameters, add more doc
Test done:
make  rpc

Signed-off-by: richardyu <richardyu@contoso.com>

* Update sai_fdb_test.py

remove unnecessary test

Signed-off-by: Richard.Yu <richard.yu@microsoft.com>

Signed-off-by: richardyu <richardyu@contoso.com>
Signed-off-by: Richard.Yu <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>
richardyu-ms added a commit that referenced this pull request Nov 1, 2022
* [SAI-PTF] Add decorator for skipping test on specified error (#1609)

* [SAI-PTF] Add decorator for skipping test on specified error

Add decorator method in the perl template  for skipping test on specified error

details:
1. add decorator method in sai_adapter_utils.tt
2. use decorator when set parameters ``skip_error``
3. add parameters when building from template, like ``perl -Irpc gensairpc.pl  --skip_error=-2,-3``
4. remove the new added parameters, add more doc
Test done:
make  rpc

Signed-off-by: richardyu <richardyu@contoso.com>

* Update sai_fdb_test.py

remove unnecessary test

Signed-off-by: Richard.Yu <richard.yu@microsoft.com>

Signed-off-by: richardyu <richardyu@contoso.com>
Signed-off-by: Richard.Yu <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>

* [SAI-PTF] Enhance the function for getting counters in sai_adapter.py (#1626)

* [SAI-PTF] Enhance the function for getting counters in sai_adapter.py

    Resolve issue #1614

    For the auto-generated adapter, need to add a parameter for which counter_id/counter_ids we want, in order to compatiable with current code and reduce the modification, we can define a constant parameter as the list of counter_ids, and use this constant as the default.

    Before

    ```
    def sai_thrift_get_bfd_session_stats(client,
                                         bfd_session_oid):

        counter_ids = []
        counter_ids.append(SAI_BFD_SESSION_STAT_IN_PACKETS)
        counter_ids.append(SAI_BFD_SESSION_STAT_OUT_PACKETS)
        counter_ids.append(SAI_BFD_SESSION_STAT_DROP_PACKETS)

        counters = [0] * 3
        global status
        status = SAI_STATUS_SUCCESS
    ```

    After the refactor
    ```
    sai_get_bfd_session_stats_counter_ids = []
    sai_get_bfd_session_stats_counter_ids.append(SAI_BFD_SESSION_STAT_IN_PACKETS)
    sai_get_bfd_session_stats_counter_ids.append(SAI_BFD_SESSION_STAT_OUT_PACKETS)
    sai_get_bfd_session_stats_counter_ids.append(SAI_BFD_SESSION_STAT_DROP_PACKETS)

    def sai_thrift_get_bfd_session_stats(client,
                                         bfd_session_oid,
                                         counter_ids=sai_get_bfd_session_stats_counter_ids):

        counters = [0] * 3
        global status
        status = SAI_STATUS_SUCCESS
    ```

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

* make some enhancement on the code, add dict which can get the enum name by id

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>

Signed-off-by: richardyu <richardyu@contoso.com>
Signed-off-by: Richard.Yu <richard.yu@microsoft.com>
Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>
richardyu-ms added a commit to richardyu-ms/SAI that referenced this pull request Nov 1, 2022
…puteproject#1609)

* [SAI-PTF] Add decorator for skipping test on specified error

Add decorator method in the perl template  for skipping test on specified error

details:
1. add decorator method in sai_adapter_utils.tt
2. use decorator when set parameters ``skip_error``
3. add parameters when building from template, like ``perl -Irpc gensairpc.pl  --skip_error=-2,-3``
4. remove the new added parameters, add more doc
Test done:
make  rpc

Signed-off-by: richardyu <richardyu@contoso.com>

* Update sai_fdb_test.py

remove unnecessary test

Signed-off-by: Richard.Yu <richard.yu@microsoft.com>

Signed-off-by: richardyu <richardyu@contoso.com>
Signed-off-by: Richard.Yu <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>
richardyu-ms added a commit that referenced this pull request Nov 1, 2022
* [SAI-PTF] Add decorator for skipping test on specified error (#1609)

* [SAI-PTF] Add decorator for skipping test on specified error

Add decorator method in the perl template  for skipping test on specified error

details:
1. add decorator method in sai_adapter_utils.tt
2. use decorator when set parameters ``skip_error``
3. add parameters when building from template, like ``perl -Irpc gensairpc.pl  --skip_error=-2,-3``
4. remove the new added parameters, add more doc
Test done:
make  rpc

Signed-off-by: richardyu <richardyu@contoso.com>

* Update sai_fdb_test.py

remove unnecessary test

Signed-off-by: Richard.Yu <richard.yu@microsoft.com>

Signed-off-by: richardyu <richardyu@contoso.com>
Signed-off-by: Richard.Yu <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>

* [SAI-PTF] Enhance the function for getting counters in sai_adapter.py (#1626)

* [SAI-PTF] Enhance the function for getting counters in sai_adapter.py

    Resolve issue #1614

    For the auto-generated adapter, need to add a parameter for which counter_id/counter_ids we want, in order to compatiable with current code and reduce the modification, we can define a constant parameter as the list of counter_ids, and use this constant as the default.

    Before

    ```
    def sai_thrift_get_bfd_session_stats(client,
                                         bfd_session_oid):

        counter_ids = []
        counter_ids.append(SAI_BFD_SESSION_STAT_IN_PACKETS)
        counter_ids.append(SAI_BFD_SESSION_STAT_OUT_PACKETS)
        counter_ids.append(SAI_BFD_SESSION_STAT_DROP_PACKETS)

        counters = [0] * 3
        global status
        status = SAI_STATUS_SUCCESS
    ```

    After the refactor
    ```
    sai_get_bfd_session_stats_counter_ids = []
    sai_get_bfd_session_stats_counter_ids.append(SAI_BFD_SESSION_STAT_IN_PACKETS)
    sai_get_bfd_session_stats_counter_ids.append(SAI_BFD_SESSION_STAT_OUT_PACKETS)
    sai_get_bfd_session_stats_counter_ids.append(SAI_BFD_SESSION_STAT_DROP_PACKETS)

    def sai_thrift_get_bfd_session_stats(client,
                                         bfd_session_oid,
                                         counter_ids=sai_get_bfd_session_stats_counter_ids):

        counters = [0] * 3
        global status
        status = SAI_STATUS_SUCCESS
    ```

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

* make some enhancement on the code, add dict which can get the enum name by id

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>

Signed-off-by: richardyu <richardyu@contoso.com>
Signed-off-by: Richard.Yu <richard.yu@microsoft.com>
Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
Co-authored-by: richardyu <richardyu@contoso.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants