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

Improve integration tests for sender and receiver #29

Closed
gavv opened this issue Aug 21, 2020 · 5 comments
Closed

Improve integration tests for sender and receiver #29

gavv opened this issue Aug 21, 2020 · 5 comments
Labels
moved Transitioned to another issue or pull request tests Improvements or additions to tests

Comments

@gavv
Copy link
Member

gavv commented Aug 21, 2020

Currently we have one simple test (sender_receiver_test.go added in #24), which runs sender in receiver in two goroutines and waits until receiver will get a few non-zero samples.

It would be nice to add a few more sophisticated tests. We don't need to test all possible combinations in bindings, since we assume that the underlying library is already tested; however covering a few important features and checking that everything works as expected would be helpful.

Things to cover:

  • Tests with and without FEC. The checks can be same, we just need to ensure that both configuration work.

  • Tests with and without resampler. When resampler is enabled, it's hard to compare streams, and we should just check that we receive some amount of non-zero samples. When resampler is disabled, on the other hand, the receiver wont modify the stream, and the only difference between input and output streams are possibles losses (when FEC can't recover packets) and shifts. In this case we can perform a more strict check and ensure that we receive the expected stream, except possible losses and shifts.

  • Test for external and internal clock sources. See documentation for details; internal clock source means clocking by CPU timer inside sender or receiver, and external clock source means clocking by user, i.e. requires calling read and write at appropriate time.

  • Tests for multiple contexts, senders, and receivers. Possible combination are: one receiver or sender per context, or multiple receivers and sender sharing same context; one sender connected to receiver, or multiple senders connected to a single receiver.

For background, see the following links:

@gavv gavv added the tests Improvements or additions to tests label Aug 21, 2020
@gavv gavv changed the title Add integration test for sender and receiver Improve integration tests for sender and receiver Sep 28, 2020
@gavv gavv added hacktoberfest help wanted Contributions are welcome labels Sep 28, 2020
@gavv gavv added the good first issue Good for newcomers label Sep 28, 2020
@gavv gavv removed the hacktoberfest label Dec 3, 2020
@rafiramadhana
Copy link

rafiramadhana commented May 6, 2023

Hi @gavv . This issue seems interesting.

However, do you have any recommendation of docs/videos/etc
to familiarize myself with this repo? (e.g. basic concepts, common glossary, api/code structure, etc)

Thanks.

@gavv
Copy link
Member Author

gavv commented May 12, 2023

@rafiramadhana Hi!

Since roc-go provides bindings for roc-toolkit, I guess the best place to start is docs for roc-toolkit itself: https://roc-streaming.org/toolkit/docs/

In particular, the following pages may be useful:

Also, information from this issue may help: roc-streaming/rt-tests#1

Feel free to ask question here on in chat.

Let me know if you would like to be assigned.

@rafiramadhana
Copy link

@gavv I'm going to spent time for reading first.

I will let you know when I'm ready.

Thanks!

@gavv
Copy link
Member Author

gavv commented May 29, 2023

Given it another though, I decided this is actually too big for one task. I've created separate issue for each enhancement and provided more details:

@gavv
Copy link
Member Author

gavv commented May 29, 2023

@rafiramadhana Feel free to leave a comment in those issues if you would like to pick up one.

@gavv gavv closed this as completed May 29, 2023
@gavv gavv added moved Transitioned to another issue or pull request and removed help wanted Contributions are welcome good first issue Good for newcomers labels May 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
moved Transitioned to another issue or pull request tests Improvements or additions to tests
Projects
None yet
Development

No branches or pull requests

2 participants