Getting to the way it's supposed to be!
This commit is contained in:
58
modules/ufbx/misc/test_deflate.py
Normal file
58
modules/ufbx/misc/test_deflate.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import os
|
||||
import sys
|
||||
import zlib
|
||||
import subprocess
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
filepath = os.path.dirname(sys.argv[0])
|
||||
if os.name == 'nt':
|
||||
exe = os.path.join(filepath, "../build/test_deflate.exe")
|
||||
else:
|
||||
exe = os.path.join(filepath, "../build/test_deflate")
|
||||
exe = os.path.relpath(exe)
|
||||
else:
|
||||
exe = sys.argv[1]
|
||||
|
||||
path = "."
|
||||
if len(sys.argv) >= 3:
|
||||
path = sys.argv[2]
|
||||
|
||||
def test(data):
|
||||
for level in range(1, 10):
|
||||
if level < 9:
|
||||
print("{},".format(level), end="")
|
||||
else:
|
||||
print("{}".format(level), end="")
|
||||
compressed = zlib.compress(data, level)
|
||||
args = [exe, str(len(compressed)), str(len(data))]
|
||||
result = subprocess.check_output(args, input=compressed)
|
||||
if result != data:
|
||||
raise ValueError("Decompression mismatch")
|
||||
|
||||
for r,dirs,files in os.walk(path):
|
||||
# HACK: Ignore .git directories
|
||||
if ".git" in r:
|
||||
continue
|
||||
|
||||
for file in files:
|
||||
sys.stdout.flush()
|
||||
path = os.path.join(r, file)
|
||||
try:
|
||||
print(path, end=': ')
|
||||
except:
|
||||
# Print fails sometimes with weird filenames (?)
|
||||
continue
|
||||
try:
|
||||
f = open(path, "rb")
|
||||
except:
|
||||
print("SKIP")
|
||||
continue
|
||||
b = f.read()
|
||||
try:
|
||||
test(b)
|
||||
print()
|
||||
except Exception as e:
|
||||
print()
|
||||
print("FAIL ({})".format(e))
|
||||
sys.exit(1)
|
||||
f.close()
|
||||
Reference in New Issue
Block a user