-
Notifications
You must be signed in to change notification settings - Fork 282
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
feat(testing) add new regression test to run exiv2 over every test file #2091
Conversation
d0ee94c
to
dc98528
Compare
I don't have any failures locally... 🙈 will look into it tomorrow |
Codecov Report
@@ Coverage Diff @@
## main #2091 +/- ##
==========================================
+ Coverage 62.08% 62.98% +0.90%
==========================================
Files 96 96
Lines 19153 19110 -43
Branches 9798 9781 -17
==========================================
+ Hits 11891 12037 +146
+ Misses 4967 4779 -188
+ Partials 2295 2294 -1
Continue to review full report at Codecov.
|
This seems such a good idea that I don't know why we have not done this in the past! My concern is the increase in the size of the download when you clone the repos.
About 2013, we had complaints from darktable when we added video and eps files. The reason for the complaint was because we had increased the repos from 25mb to 80mb. Their build scripts were pulling down everything and building the library. They didn't run any tests. The data/ directory was causing pain with no gain. I dealt with that by putting the test files into a different repos and downloaded them on demand. I was able to decrease the repos from 80mb, to 25mb with no unpleasant side effects. The "use a different repos" works well for reference images because they seldom change. In your case, the whole point is to detect change, so having the reference output in the repos is the right thing to do. If we use tar.gz on directory test_reference_files, the files would be 5mb instead of 25mb. I doubt if this helps because I suspect git uses compression to decrease the data "on the wire". My conclusion: This is a good idea and the additional band-width required to clone the repos is justified. |
It looks like @hassec is not introducing new binary files, just txt files for the expectations in the tests right? In that case we do not need to worry much baout the increase in size. The real issue with source code repositories regarding the size is when you start adding binary files (images, videos, etc.). For a long time I wanted to give it a try to Git LFS and move there all the binaries we have in exiv2. However I think it would be a large task ... |
@piponazo I think we're in agreement. At first sight, it appears as though we've added a 26mb sub directory to directory test/. However that compresses "on the wire" to 5mb. For that matter, the directory po/ is only 3mb when compressed. Another thought I had was that we have a lot more bandwidth in 2022 than the darktable complaint in 2012. We're using it wisely. You're doing a great job with the Greek paths. I got confused on Friday between Cygwin and MinGW. Cygwin is posix and handles greek paths effortlessly. Apologies for the noise. MinGW is Windows and needs the powerful magic with which you are now working. The CI is probably hanging by displaying alerts about missing DLLs. Getting that fixed requires patience and determination. You've got both those qualities. Best of Luck. |
good point @piponazo, There is of course the open question whether we still need many of the small old tests, which are by definition a subset of this new test. So right now we are doing redundant work, but I wanted to focus on introducing the new test in this PR and then discuss and start cleanup step by step in further PRs if that is ok? |
For me it is totally fine to take an incremental approach. I'll look with more detail to your changes once all the CI jobs are green 😉 |
dc98528
to
b73d884
Compare
…er every test file we have
b73d884
to
7649e87
Compare
…e test to cmakelists.txt
@piponazo all tests are ✔️ 🎉 I've excluded 5 more files which are only fuzzing POCs and were failing differently in xmpsdk depending on the platform. |
@hassec. Can you take a cautious approach to bringing your new "hit everything test" into service. I think you should allow new test to settle before removing tests which have given good service for years. How about opening a new issue report "Retire tests which are duplicated by test_christophs_magic.py". So, only record this as a task for the future (say in 3 months from now). |
@clanmills yes I think that is a good idea. I wasn't planning on removing any of the duplicate tests in this MR. |
This PR introduces a new test which runs exiv2 over every file* that we have and compares the output with a reference output which is committed to the repository.
The goal is to become more sensitive to any kind of changes when we refactor code or make any other changes.