This is a mirror of the GitLab repo!
https://gitlab.com/Lynnesbian/fif
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.6 KiB
71 lines
1.6 KiB
#!/usr/bin/env python |
|
|
|
# SPDX-FileCopyrightText: 2021-2022 Lynnesbian |
|
# SPDX-License-Identifier: GPL-3.0-or-later |
|
|
|
import re |
|
import subprocess |
|
import sys |
|
|
|
|
|
def test_archs(): |
|
archs = ["aarch64", "powerpc", "riscv64gc"] |
|
upto = 1 |
|
target = len(archs) |
|
|
|
for arch in archs: |
|
print(f"Testing {arch} ({upto} of {target})") |
|
subprocess\ |
|
.run(f"cross test --features=json,infer-backend --target {arch}-unknown-linux-gnu".split(" "))\ |
|
.check_returncode() |
|
upto += 1 |
|
|
|
|
|
def test_versions(): |
|
match = re.search( |
|
r'rust-version ?= ?"([\d.]+)"', |
|
open("Cargo.toml", "r").read(-1) |
|
) |
|
|
|
if not match: |
|
print("Couldn't find rust-version") |
|
exit(1) |
|
|
|
versions = [match.group(1), "stable", "nightly"] |
|
backends = ["xdg-mime", "infer"] |
|
|
|
upto = 1 |
|
target = len(versions) * len(backends) * 2 |
|
|
|
for version in versions: |
|
for backend in backends: |
|
print(f"[{version}, {backend}] Tests ({upto} of {target})") |
|
subprocess.run(f"cargo +{version} test --features=json,{backend}-backend".split(" ")).check_returncode() |
|
upto += 1 |
|
|
|
print(f"[{version}, {backend}] Scanning imgs ({upto} of {target})") |
|
subprocess\ |
|
.run(f"cargo +{version} run --release --features=json,{backend}-backend -- imgs".split(" "))\ |
|
.check_returncode() |
|
upto += 1 |
|
|
|
|
|
def main(): |
|
done_something = False |
|
if "versions" in sys.argv: |
|
test_versions() |
|
done_something = True |
|
if "archs" in sys.argv: |
|
test_archs() |
|
done_something = True |
|
|
|
if not done_something: |
|
print("You must supply at least one of `versions` or `archs` as an argument! 0uo") |
|
sys.exit(2) |
|
|
|
print("Done! You might want to run cargo clean...") |
|
subprocess.run(["du", "-sh", "target"]) |
|
|
|
|
|
if __name__ == "__main__": |
|
main()
|
|
|