mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-27 11:07:44 +00:00
GNU: add a script to list the failing tests
and sort them by size: (the smaller, the easier to fix in general)
This commit is contained in:
parent
7debdbbbaa
commit
46ceeed54c
1 changed files with 49 additions and 0 deletions
49
util/remaining-gnu-error.py
Executable file
49
util/remaining-gnu-error.py
Executable file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# This script lists the GNU failing tests by size
|
||||||
|
# Just like with util/run-gnu-test.sh, we expect the gnu sources
|
||||||
|
# to be in ../
|
||||||
|
import urllib.request
|
||||||
|
|
||||||
|
import urllib
|
||||||
|
import os
|
||||||
|
import glob
|
||||||
|
import json
|
||||||
|
|
||||||
|
base = "../gnu/tests/"
|
||||||
|
urllib.request.urlretrieve(
|
||||||
|
"https://raw.githubusercontent.com/uutils/coreutils-tracking/main/gnu-full-result.json",
|
||||||
|
"result.json",
|
||||||
|
)
|
||||||
|
|
||||||
|
tests = glob.glob(base + "/*/*.sh")
|
||||||
|
tests_pl = glob.glob(base + "/*/*.pl")
|
||||||
|
tests_xpl = glob.glob(base + "/*/*.xpl")
|
||||||
|
tests = tests + tests_pl + tests_xpl
|
||||||
|
|
||||||
|
# sort by size
|
||||||
|
list_of_files = sorted(tests, key=lambda x: os.stat(x).st_size)
|
||||||
|
|
||||||
|
with open("result.json", "r") as json_file:
|
||||||
|
data = json.load(json_file)
|
||||||
|
|
||||||
|
for d in data:
|
||||||
|
for e in data[d]:
|
||||||
|
# Not all the tests are .sh files, rename them if not.
|
||||||
|
script = e.replace(".log", ".sh")
|
||||||
|
a = "%s%s/%s" % (base, d, script)
|
||||||
|
if not os.path.exists(a):
|
||||||
|
a = a.replace(".sh", ".pl")
|
||||||
|
if not os.path.exists(a):
|
||||||
|
a = a.replace(".pl", ".xpl")
|
||||||
|
|
||||||
|
# the tests pass, we don't care anymore
|
||||||
|
if data[d][e] == "PASS":
|
||||||
|
list_of_files.remove(a)
|
||||||
|
|
||||||
|
# Remove the factor tests and reverse the list (bigger first)
|
||||||
|
tests = list(filter(lambda k: "factor" not in k, list_of_files))
|
||||||
|
|
||||||
|
for f in reversed(tests):
|
||||||
|
print("%s: %s" % (f, os.stat(f).st_size))
|
||||||
|
print("")
|
||||||
|
print("%s tests remaining" % len(tests))
|
Loading…
Add table
Add a link
Reference in a new issue