Page MenuHomePhabricator

IPUtils test coverage is poor
Closed, ResolvedPublic

Assigned To
Authored By
Reedy
Mar 7 2020, 11:23 AM
Referenced Files
F32357056: Screenshot 2020-09-20 at 17.06.44.png
Sep 20 2020, 4:07 PM
F31808694: Screenshot 2020-05-09 at 03.27.43.png
May 9 2020, 2:28 AM
F31806462: Screenshot 2020-05-07 at 14.46.12.png
May 7 2020, 1:46 PM
F31672091: Screenshot 2020-03-09 at 01.33.41.png
Mar 9 2020, 1:34 AM
F31671824: Screenshot 2020-03-08 at 22.12.51.png
Mar 8 2020, 10:13 PM
F31671621: Screenshot 2020-03-08 at 20.04.21.png
Mar 8 2020, 8:04 PM
F31671601: Screenshot 2020-03-08 at 19.47.55.png
Mar 8 2020, 7:49 PM
Subscribers

Description

As of task creation, https://doc.wikimedia.org/cover/mediawiki-libs-IPUtils/ was only 50-55 ish percent

While in some functions testing for explicit ranges is accepted, it's not tested at all

None of the examples at https://github.com/wikimedia/mediawiki-libs-IPUtils/blob/cb861b9/tests/IPUtilsTest.php#L258-L277 include an -, similarly in https://github.com/wikimedia/mediawiki-libs-IPUtils/blob/cb861b9/tests/IPUtilsTest.php#L294-L309

Looking at T247149, which requests 185.153.192.0-60 (which has to be 185.153.192.0-185.153.192.60) to work https://github.com/wikimedia/mediawiki-libs-IPUtils/blob/cb861b9/src/IPUtils.php#L487-L557 mentions 1.2.3.4 - 1.2.3.5 Explicit range

It seems prudent to actually have test cases to test a large swathe of code :)

Before:

Screenshot 2020-03-08 at 19.47.55.png (296×2 px, 76 KB)

Currently:

Screenshot 2020-09-20 at 17.06.44.png (296×2 px, 83 KB)

Event Timeline

Reedy updated the task description. (Show Details)

Change 577749 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/libs/IPUtils@master] Add some test cases

https://gerrit.wikimedia.org/r/577749

Reedy renamed this task from IPUtils doesn't have tests for explicit ranges to IPUtils test coverage is poor.Mar 7 2020, 12:06 PM

Change 577752 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/libs/IPUtils@master] Add tests to cover IPUtils::parseRange

https://gerrit.wikimedia.org/r/577752

Change 577774 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/libs/IPUtils@master] Allow explicit ranges in IPUtils::isValidRange()

https://gerrit.wikimedia.org/r/577774

Change 577774 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] Allow explicit ranges in IPUtils::isValidRange()

https://gerrit.wikimedia.org/r/577774

Change 577752 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] Add tests to cover IPUtils::parseRange

https://gerrit.wikimedia.org/r/577752

Progress! (on lines at least)

Screenshot 2020-03-08 at 19.47.55.png (296×2 px, 76 KB)

to

Screenshot 2020-03-08 at 20.04.21.png (288×2 px, 75 KB)

Change 578110 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/libs/IPUtils@master] Bug: T247156

https://gerrit.wikimedia.org/r/578110

Change 578110 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/libs/IPUtils@master] tests: Add IPv6 coverage of sanitizeIP()

https://gerrit.wikimedia.org/r/578110

Change 578110 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] tests: Add IPv6 coverage of sanitizeIP()

https://gerrit.wikimedia.org/r/578110

Screenshot 2020-03-09 at 01.33.41.png (296×2 px, 78 KB)

Definitely looking in better shape in terms of lines...

Change 594895 had a related patch set uploaded (by Ammarpad; owner: Ammarpad):
[mediawiki/libs/IPUtils@master] IPUtils: Improve test coverage

https://gerrit.wikimedia.org/r/594895

Reedy updated the task description. (Show Details)

Change 594895 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] IPUtils: Improve test coverage

https://gerrit.wikimedia.org/r/594895

Change 594991 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/libs/IPUtils@master] Add tests for IPUtils::parseRange() for single IPs

https://gerrit.wikimedia.org/r/594991

Change 594991 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] Add tests for IPUtils::parseRange() for single IPs

https://gerrit.wikimedia.org/r/594991

Change 594996 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/libs/IPUtils@master] Add case for IPUtils::parseCIDR() being given IPv6

https://gerrit.wikimedia.org/r/594996

Change 594996 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] Add case for IPUtils::parseCIDR() being given IPv6

https://gerrit.wikimedia.org/r/594996

Change 595250 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/libs/IPUtils@master] Add test for another edge case of IPUtils::parseRange()

https://gerrit.wikimedia.org/r/595250

Change 595251 had a related patch set uploaded (by Reedy; owner: Reedy):
[mediawiki/libs/IPUtils@master] Mark IPUtilsTest::testToHex() as covering IPUtils:IPv6ToRawHex()

https://gerrit.wikimedia.org/r/595251

Change 595251 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] Mark IPUtilsTest::testToHex() as covering IPUtils:IPv6ToRawHex()

https://gerrit.wikimedia.org/r/595251

Change 595250 merged by jenkins-bot:
[mediawiki/libs/IPUtils@master] Add test for another edge case of IPUtils::parseRange()

https://gerrit.wikimedia.org/r/595250

Reedy claimed this task.

Screenshot 2020-09-20 at 17.06.44.png (296×2 px, 83 KB)

Definitely not poor anymore