Dear Paul, I think we should stop using python and move to rust :)
— Damjan > On 29.03.2021., at 21:20, Paul Vinciguerra <pvi...@vinciconsulting.com> wrote: > > Hi Damjan, > > Moving the files has tradeoffs. The relative value depends on the user's > workflow. Most tests have their own launcher at the bottom of the test_<foo> > file and at some point were able to run outside of the Makefile/run_tests. > Relocating the files essentially breaks that, but if it is not used by > anyone, that could be ok. We just need to clean up the code to remove those > remnants. > > If we were to clean up and package framework.py and related files as a python > module, then the tests could be run from anywhere in the file system. If > papi and the test framework were separated out of the repo, building tests > and applications would become 50x easier. Why? Because python would handle > the files and their locations/namespaces within the python venv. > > It would look something like: > $ cd <wherever_test_foo_lives> > $ python3 -m pip install . > installing <test_dependencies> > installing <framework> > installing vpp_papi > $ python3 ./test_<foo> > > None of these are insurmountable issues. We have to agree, and we have to > agree to not punt on the associated hygiene. > > I agree with Florin, I don't have a strong opinion as to where the files > reside. Unless, we can agree to move the tests to a separate repository, > then I'd prefer to have them all in a single directory. Why? Because it > would be trivial to run the stable release's tests against vpp master and > know what code I need to update across versions. > > While we are on the subject of tests, I would like to socialize a few ideas > for improvement. > Can we stop building packets in the test files? Yes, I know we need packets > to test against, but can we just have the test file pass an associated pcap > file, since that is what we send to the pg to run the test. A side effect > of this is that the need for scapy in the tests is reduced. There is a video > somewhere where all the different methods to sum up all the numbers from > 1..1_000_000 are compared in python and the final statement of the video was > to just use n(n + 1) / 2. > Can we make the testing packets more useful? We typically take a single > packet and replicate it a number of times to ensure that the packet takes > each path in the node. Additionally, the packet value choices aren't always > useful. When the source port == the dest port, for example, typos in the > code under test can be missed. Even better would be to increment ephemeral > port values. > I would like to see vpp add a stride width value (1,2,4,8) to a node's > registration info that was accessible to the test via an api, even if the api > were only in the unit test plugin. This way, the tests can calculate the > optimal packet stream characteristics, or at the very least warn that a given > test doesn't sufficiently test the component. > > Paul > > > On Fri, Mar 26, 2021 at 3:15 PM hemant via lists.fd.io <http://lists.fd.io/> > <hemant=mnkcg....@lists.fd.io <mailto:mnkcg....@lists.fd.io>> wrote: > Damjan, > > Thanks for clarifying - I agree with you on vnet tests. > > Hemant > > -----Original Message----- > From: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> <vpp-dev@lists.fd.io > <mailto:vpp-dev@lists.fd.io>> On Behalf Of Damjan Marion via lists.fd.io > <http://lists.fd.io/> > Sent: Friday, March 26, 2021 12:38 PM > To: Dave Wallace <dwallac...@gmail.com <mailto:dwallac...@gmail.com>> > Cc: vpp-dev <vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>> > Subject: Re: [vpp-dev] keeping tests outside of src/ > > > > > On 25.03.2021., at 21:14, Dave Wallace <dwallac...@gmail.com > > <mailto:dwallac...@gmail.com>> wrote: > > > > Hi Damjan, > > > > This initiative originated with the wider adoption of plugin development at > > the request of Dave Barach to allow the development of plugins outside the > > VPP repo. After completing the job for plugins, there were several > > requests to extend that to all of the features. Presumably this was > > coupled with the desire to migrate feature source code from vnet into the > > plugin arena, but I don't recall all of the details of the discussion. > > OK, there are 2 different things. One is testing of out-of-tree plugins, > another one is VPP tree layout. > I fully agree that we need to support testing of out-of-tree plugins. Than > can be fixed as simple as ‘make test > TEST_DIR=/path/to/out-of-tree-plugin/test’. > > I don’t see how those two things relate. > > > > > Unfortunately, this effort stalled across several releases due to lack of > > cycles and I'm just now in the process of completing the job. > > > > I'm perfectly ok accepting a -2 for test code that maintainers prefer to > > leave in .../vpp/test, but I don't see the original requirement to > > co-locate plugin source & test code going away. So the majority of the > > feature source & test code will remain structured that way and the end > > result will be inconsistent at best. > > I’m not trying ot say we should -2, and I know that you submitted those > patches believing that this is the right thing to do. I am just under > impression that we are all not on the same page what is right thing to do. > > > > > > Personally, I think that it makes sense to continue to move features > > source, test code, and documentation to be co-located in a modular and > > consistent sub-tree structure. I also see value in migrating features out > > of vnet into the plugin sub-tree. > > I disagree here, I believe it should stay separate. But this is just my > opinion, I’m fine to be minority here, i just would like to know that we are > all on the same page and that whatever we decide we decided with good > understanding of implications. > > Implications may be: > - licensing implications like the current saga with scapy > - deciding if CMake should install test infra as part of vpp-dev packaging > - dealing with tests which cover multiple source code components or infra > > Mechanical move of file is the easiest part. As currently src/ is currently > one entity handled by CMake, throwing tests in without test infra being part > of src/ looks to me very broken. > > > > > > For what its worth, the changes to test/Makefile gather all of the source > > as soft links into the build tree (.../vpp/build-root/build-test/src), but > > I understand that is not the same your original plan. > > > > Thanks, > > -daw- > > > > On 3/25/2021 3:16 PM, Damjan Marion via lists.fd.io <http://lists.fd.io/> > > wrote: > >> Hi, > >> > >> It may be that it is not discussed or i was just ignorant, but I noticed > >> that there is ongoing activity to scatter tests all across the src/. > >> When I started "make test" long long time ago i intentionally put it > >> to separate tree following the pattern from other projects and to be > >> honest it makes me more sense that all tests are contained in the separate > >> tree. > >> > >> Are we sure that this test file scatter activity is right thing to do? > >> Anyone aware of any other project doing the same? > >> > >> — > >> Damjan > >> > >> > >> > >> > >> > >> > >> > > > > > > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19051): https://lists.fd.io/g/vpp-dev/message/19051 Mute This Topic: https://lists.fd.io/mt/81611239/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-