test_script:
- 'bash.exe -lc "cd \"${APPVEYOR_BUILD_FOLDER}\" && file.exe fio.exe && make.exe test'
- 'bash.exe -lc "cd \"${APPVEYOR_BUILD_FOLDER}\" && [ -f fio.exe ] && python.exe t/run-fio-tests.py --artifact-root test-artifacts --debug'
- - 'bash.exe -lc "cd \"${APPVEYOR_BUILD_FOLDER}\" && [ -d test-artifacts ] && 7z a -t7z test-artifacts.7z test-artifacts -xr!foo.0.0 -xr!latency.?.0 -xr!fio_jsonplus_clat2csv.test'
artifacts:
- path: os\windows\*.msi
name: msi
- - path: test-artifacts.7z
- name: test-artifacts
+
+on_finish:
+ - 'bash.exe -lc "cd \"${APPVEYOR_BUILD_FOLDER}\" && [ -d test-artifacts ] && 7z a -t7z test-artifacts.7z test-artifacts -xr!foo.0.0 -xr!latency.?.0 -xr!fio_jsonplus_clat2csv.test && appveyor PushArtifact test-artifacts.7z'
compiler:
- clang
- gcc
+arch:
+ - amd64
+ - arm64
env:
matrix:
- BUILD_ARCH="x86"
- os: osx
compiler: clang # Workaround travis setting CC=["clang", "gcc"]
env: BUILD_ARCH="x86_64"
+ arch: amd64
# Latest xcode image (needs periodic updating)
- os: osx
compiler: clang
osx_image: xcode11.2
env: BUILD_ARCH="x86_64"
+ arch: amd64
exclude:
- os: osx
compiler: gcc
- exclude:
- os: linux
compiler: clang
+ arch: amd64
env: BUILD_ARCH="x86" # Only do the gcc x86 build to reduce clutter
+ - os: linux
+ env: BUILD_ARCH="x86"
+ arch: arm64
+
before_install:
- EXTRA_CFLAGS="-Werror"
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
script:
- ./configure --extra-cflags="${EXTRA_CFLAGS}" && make
- make test
- - sudo python3 t/run-fio-tests.py --skip 6 1007 1008 --debug
+ - if [[ "$TRAVIS_CPU_ARCH" == "arm64" ]]; then
+ sudo python3 t/run-fio-tests.py --skip 6 1007 1008 --debug -p 1010:"--skip 15 16 17 18 19 20";
+ else
+ sudo python3 t/run-fio-tests.py --skip 6 1007 1008 --debug;
+ fi;
def run(self):
"""Execute the binary or script described by this instance."""
- if self.parameters:
- command = [self.exe_path] + self.parameters
- else:
- command = [self.exe_path]
+ command = [self.exe_path] + self.parameters
command_file = open(self.command_file, "w+")
command_file.write("%s\n" % command)
command_file.close()
help='provide debug output')
parser.add_argument('-k', '--skip-req', action='store_true',
help='skip requirements checking')
+ parser.add_argument('-p', '--pass-through', action='append',
+ help='pass-through an argument to an executable test')
args = parser.parse_args()
return args
else:
logging.basicConfig(level=logging.INFO)
+ pass_through = {}
+ if args.pass_through:
+ for arg in args.pass_through:
+ if not ':' in arg:
+ print("Invalid --pass-through argument '%s'" % arg)
+ print("Syntax for --pass-through is TESTNUMBER:ARGUMENT")
+ return
+ split = arg.split(":",1)
+ pass_through[int(split[0])] = split[1]
+ logging.debug("Pass-through arguments: %s" % pass_through)
+
if args.fio_root:
fio_root = args.fio_root
else:
if config['parameters']:
parameters = [p.format(fio_path=fio_path) for p in config['parameters']]
else:
- parameters = None
+ parameters = []
if Path(exe_path).suffix == '.py' and platform.system() == "Windows":
- if parameters:
- parameters.insert(0, exe_path)
- else:
- parameters = [exe_path]
+ parameters.insert(0, exe_path)
exe_path = "python.exe"
+ if config['test_id'] in pass_through:
+ parameters += pass_through[config['test_id']].split()
test = config['test_class'](exe_path, parameters,
config['success'])
else: