The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl 

#------------------------------------------------------------------------------
# parse the ZX Spectrum ROM disassembly file
package TestAsm;

use strict;
use warnings;

use Test::More;
use File::Slurp;

use CPU::Z80::Assembler;

use Exporter 'import';
our @EXPORT = (qw( test_assembly lines_equal ));

#------------------------------------------------------------------------------
# try to assemble file to check if the result is the same binary file
sub test_assembly {
	my($asm, $bmk_bin) = @_;
	my $bin = CPU::Z80::Assembler::z80asm_file($asm);
	ok $bin eq read_file($bmk_bin, binmode => ':raw'), "$asm assembles to $bmk_bin";
}

#------------------------------------------------------------------------------
# Compare two strings, ignore line-ending differences
sub lines_equal {
	my($a, $b) = @_;
	
	for ($a, $b) {
		s/\r//g;
	}
	my $ok = $a eq $b;
	return $ok;
}
	
1;