tools/tests: small end-to-end test suite for importing/pruning

As bigger changes lie ahead, we want a small end-to-end test suite
that ensures that our importing and tracing does not fall apart. With
this change, we add the infrastructure and two test-cases (fib, qsort)
including ELFs, traces, and injection results.

In order to run the basic-pruner test cases, one needs to setup a
MySQL table and set the CMake option ENABLE_DATABASE_TESTS.
This commit is contained in:
Christian Dietrich
2020-11-24 19:12:36 +01:00
committed by Horst Schirmeier
parent df44da9f33
commit f92b930acb
65 changed files with 198613 additions and 0 deletions

View File

@ -0,0 +1,22 @@
b os_main
b start_trace
q
b os_main
b start_trace
c
c
c
s
q
c
list
symbol-file system.elf
list
q
q
c
bt
x 0x00100048
b partition
c
q

View File

@ -0,0 +1,7 @@
set timeout=0
set default=0
menuentry "CoRedOS" {
multiboot /boot/system.elf
boot
}

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,133 @@
cmos = {
mem_address = 0x5d
ram = {
0x00 = 0x16
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x07
0x07 = 0x01
0x08 = 0x01
0x09 = 0x00
0x0a = 0x26
0x0b = 0x02
0x0c = 0x00
0x0d = 0x80
0x0e = 0x00
0x0f = 0x00
0x10 = 0x00
0x11 = 0x00
0x12 = 0x00
0x13 = 0x00
0x14 = 0x06
0x15 = 0x80
0x16 = 0x02
0x17 = 0x00
0x18 = 0x3c
0x19 = 0x00
0x1a = 0x00
0x1b = 0x00
0x1c = 0x00
0x1d = 0x00
0x1e = 0x00
0x1f = 0x00
0x20 = 0x00
0x21 = 0x00
0x22 = 0x00
0x23 = 0x00
0x24 = 0x00
0x25 = 0x00
0x26 = 0x00
0x27 = 0x00
0x28 = 0x00
0x29 = 0x00
0x2a = 0x00
0x2b = 0x00
0x2c = 0x00
0x2d = 0x00
0x2e = 0x00
0x2f = 0xc4
0x30 = 0x00
0x31 = 0x3c
0x32 = 0x20
0x33 = 0x00
0x34 = 0x00
0x35 = 0x00
0x36 = 0x00
0x37 = 0x20
0x38 = 0x00
0x39 = 0x00
0x3a = 0x00
0x3b = 0x00
0x3c = 0x00
0x3d = 0x03
0x3e = 0x00
0x3f = 0x00
0x40 = 0x00
0x41 = 0x00
0x42 = 0x00
0x43 = 0x00
0x44 = 0x00
0x45 = 0x00
0x46 = 0x00
0x47 = 0x00
0x48 = 0x00
0x49 = 0x00
0x4a = 0x00
0x4b = 0x00
0x4c = 0x00
0x4d = 0x00
0x4e = 0x00
0x4f = 0x00
0x50 = 0x00
0x51 = 0x00
0x52 = 0x00
0x53 = 0x00
0x54 = 0x00
0x55 = 0x00
0x56 = 0x00
0x57 = 0x00
0x58 = 0x00
0x59 = 0x00
0x5a = 0x00
0x5b = 0x00
0x5c = 0x00
0x5d = 0x00
0x5e = 0x00
0x5f = 0x00
0x60 = 0x00
0x61 = 0x00
0x62 = 0x00
0x63 = 0x00
0x64 = 0x00
0x65 = 0x00
0x66 = 0x00
0x67 = 0x00
0x68 = 0x00
0x69 = 0x00
0x6a = 0x00
0x6b = 0x00
0x6c = 0x00
0x6d = 0x00
0x6e = 0x00
0x6f = 0x00
0x70 = 0x00
0x71 = 0x00
0x72 = 0x00
0x73 = 0x00
0x74 = 0x00
0x75 = 0x00
0x76 = 0x00
0x77 = 0x00
0x78 = 0x00
0x79 = 0x00
0x7a = 0x00
0x7b = 0x00
0x7c = 0x00
0x7d = 0x00
0x7e = 0x00
0x7f = 0x00
}
}

View File

@ -0,0 +1,57 @@
# configuration file generated by Bochs
plugin_ctrl: unmapped=1, biosdev=1, speaker=1, extfpuirq=1, gameport=1, pci_ide=0, acpi=0, ioapic=1
config_interface: textconfig
display_library: nogui
memory: host=16, guest=16
romimage: file="BIOS-bochs-latest"
vgaromimage: file="vgabios.bin"
boot: cdrom
floppy_bootsig_check: disabled=0
# no floppya
# no floppyb
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-slave: type=cdrom, path="img/micro/qsort/system.iso", status=inserted, biosdetect=auto, model="Generic 1234"
ata1: enabled=0
ata2: enabled=0
ata3: enabled=0
parport1: enabled=0
parport2: enabled=0
com1: enabled=1, mode=null, dev=""
com2: enabled=0
com3: enabled=0
com4: enabled=0
usb_uhci: enabled=0
usb_ohci: enabled=0
i440fxsupport: enabled=0
vga_update_interval: 300000
vga: extension=vbe
cpu: count=1, ips=5000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpuid: cpuid_limit_winnt=0, mmx=1, sse=sse4_2, xapic=1, sep=1, aes=1, xsave=1, movbe=1, 1g_pages=0, pcid=0 fsgsbase=0, mwait=1, mwait_is_nop=0
cpuid: stepping=3, vendor_string="GenuineIntel", brand_string=" Intel(R) Pentium(R) 4 CPU "
print_timestamps: enabled=0
# no gdb stub
port_e9_hack: enabled=0
text_snapshot_check: enabled=0
private_colormap: enabled=0
clock: sync=none, time0=946681200
# no cmosimage
ne2k: card=0, enabled=0
ne2k: card=1, enabled=0
ne2k: card=2, enabled=0
ne2k: card=3, enabled=0
pnic: enabled=0
sb16: enabled=0
# no loader
log: -
logprefix: %t%e%d
panic: action=report
error: action=report
info: action=ignore
debug: action=ignore
pass: action=ignore
keyboard_type: mf
keyboard_serial_delay: 250
keyboard_paste_delay: 100000
keyboard_mapping: enabled=0, map=
user_shortcut: keys=none
mouse: enabled=0, type=ps2, toggle=ctrl+mbutton

1154
tools/tests/qsort/state/cpu0 Normal file

File diff suppressed because it is too large Load Diff

144
tools/tests/qsort/state/dma Normal file
View File

@ -0,0 +1,144 @@
dma = {
0 = {
flip_flop = false
status_reg = 0x00
command_reg = 0x00
ctrl_disabled = false
0 = {
DRQ = false
DACK = false
mask = true
mode_type = 0
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
1 = {
DRQ = false
DACK = false
mask = true
mode_type = 0
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
2 = {
DRQ = false
DACK = false
mask = false
mode_type = 0
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
3 = {
DRQ = false
DACK = false
mask = true
mode_type = 0
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
}
1 = {
flip_flop = false
status_reg = 0x00
command_reg = 0x00
ctrl_disabled = false
0 = {
DRQ = false
DACK = false
mask = false
mode_type = 3
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
1 = {
DRQ = false
DACK = false
mask = true
mode_type = 0
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
2 = {
DRQ = false
DACK = false
mask = true
mode_type = 0
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
3 = {
DRQ = false
DACK = false
mask = true
mode_type = 0
address_decrement = 0
autoinit_enable = 0
transfer_type = 0
base_address = 0x0000
current_address = 0x0000
base_count = 0x0000
current_count = 0x0000
page_reg = 0x00
}
}
ext_page = {
0x80 = 0x00
0x81 = 0x00
0x82 = 0x00
0x83 = 0x00
0x84 = 0x00
0x85 = 0x00
0x86 = 0x00
0x87 = 0x00
0x88 = 0x00
0x89 = 0x00
0x8a = 0x00
0x8b = 0x00
0x8c = 0x00
0x8d = 0x00
0x8e = 0x00
0x8f = 0x00
}
}

Binary file not shown.

View File

@ -0,0 +1,87 @@
floppy = {
data_rate = 2
command = {
0 = 0x00
1 = 0x00
2 = 0x00
3 = 0x00
4 = 0x00
5 = 0x00
6 = 0x00
7 = 0x28
8 = 0xe5
9 = 0x03
}
command_index = 0
command_size = 0
command_complete = true
pending_command = 0xfe
multi_track = false
pending_irq = false
reset_sensei = 0
format_count = 229
format_fillbyte = 0x03
result = {
0 = 0x86
1 = 0x4b
2 = 0x56
3 = 0x00
4 = 0x00
5 = 0xfc
6 = 0x10
7 = 0x20
8 = 0x00
9 = 0x00
}
result_index = 0
result_size = 0
DOR = 0x00
TDR = 0x00
TC = true
main_status_reg = 0x00
status_reg0 = 0x00
status_reg1 = 0x00
status_reg2 = 0x00
status_reg3 = 0x00
floppy_buffer_index = 0
lock = false
SRT = 0x00
HUT = 0x00
HLT = 0x00
config = 0x00
pretrk = 0
perp_mode = 0
buffer = floppy.buffer
drive0 = {
cylinder = 0
head = 0
sector = 0
eot = 0
media_present = false
DIR = 0x80
}
drive1 = {
cylinder = 0
head = 0
sector = 0
eot = 0
media_present = false
DIR = 0x80
}
drive2 = {
cylinder = 0
head = 0
sector = 0
eot = 0
media_present = false
DIR = 0x80
}
drive3 = {
cylinder = 0
head = 0
sector = 0
eot = 0
media_present = false
DIR = 0x80
}
}

Binary file not shown.

View File

@ -0,0 +1,8 @@
gameport = {
port = 0xf0
delay_x = 0
delay_y = 0
timer_x = false
timer_y = false
write_usec = 0
}

View File

@ -0,0 +1,53 @@
hard_drive = {
0 = {
drive0 = {
buffer = drive0.buffer
status = {
busy = false
drive_ready = true
write_fault = false
seek_complete = true
drq = false
corrected_data = false
index_pulse = false
index_pulse_count = 9
err = false
}
error_register = 0x00
head_no = 0x00
sector_count = 0x03
sector_no = 0x00
cylinder_no = 0x4000
buffer_size = 0x00000800
buffer_index = 0x00000800
drq_index = 0x00000000
current_command = 0xa0
multiple_sectors = 0x00
lba_mode = 0x00
packet_dma = 0x00000000
control_reset = false
control_disable_irq = false
reset_in_progress = 0x00
features = 0x00
mdma_mode = 0x00
udma_mode = 0x00
hob_feature = 0x00
hob_nsector = 0x03
hob_sector = 0x00
hob_lcyl = 0x00
hob_hcyl = 0x40
num_sectors = 0x00000000
cdrom_locked = false
}
drive_select = 1
}
1 = {
drive_select = 0
}
2 = {
drive_select = 0
}
3 = {
drive_select = 0
}
}

View File

@ -0,0 +1,103 @@
ioapic = {
ioregsel = 0x00000000
intin = 0x00000001
irr = 0x00000001
ioredtbl = {
0x00 = {
lo = 0x00010000
hi = 0x00000000
}
0x01 = {
lo = 0x00010000
hi = 0x00000000
}
0x02 = {
lo = 0x00010000
hi = 0x00000000
}
0x03 = {
lo = 0x00010000
hi = 0x00000000
}
0x04 = {
lo = 0x00010000
hi = 0x00000000
}
0x05 = {
lo = 0x00010000
hi = 0x00000000
}
0x06 = {
lo = 0x00010000
hi = 0x00000000
}
0x07 = {
lo = 0x00010000
hi = 0x00000000
}
0x08 = {
lo = 0x00010000
hi = 0x00000000
}
0x09 = {
lo = 0x00010000
hi = 0x00000000
}
0x0a = {
lo = 0x00010000
hi = 0x00000000
}
0x0b = {
lo = 0x00010000
hi = 0x00000000
}
0x0c = {
lo = 0x00010000
hi = 0x00000000
}
0x0d = {
lo = 0x00010000
hi = 0x00000000
}
0x0e = {
lo = 0x00010000
hi = 0x00000000
}
0x0f = {
lo = 0x00010000
hi = 0x00000000
}
0x10 = {
lo = 0x00010000
hi = 0x00000000
}
0x11 = {
lo = 0x00010000
hi = 0x00000000
}
0x12 = {
lo = 0x00010000
hi = 0x00000000
}
0x13 = {
lo = 0x00010000
hi = 0x00000000
}
0x14 = {
lo = 0x00010000
hi = 0x00000000
}
0x15 = {
lo = 0x00010000
hi = 0x00000000
}
0x16 = {
lo = 0x00010000
hi = 0x00000000
}
0x17 = {
lo = 0x00010000
hi = 0x00000000
}
}
}

View File

@ -0,0 +1,132 @@
keyboard = {
controller = {
tim = false
auxb = false
c_d = false
sysf = false
inpb = false
outb = false
kbd_clock_enabled = true
aux_clock_enabled = false
allow_irq1 = true
allow_irq12 = false
kbd_output_buffer = 0xfa
aux_output_buffer = 0x00
last_comm = 0x60
expecting_port60h = 0
expecting_mouse_parameter = 0
last_mouse_command = 0x56
timer_pending = 0
irq1_requested = false
irq12_requested = false
scancodes_translate = true
expecting_scancodes_set = false
current_scancodes_set = 1
bat_in_progress = false
}
mouse = {
sample_rate = 100
resolution_cpmm = 4
scaling = 1
mode = 10
saved_mode = 139
enable = false
button_status = 224
delayed_dx = 0
delayed_dy = 0
delayed_dz = 0
im_request = 0
im_mode = false
}
kbd_internal_buffer = {
num_elements = 0
buffer = {
0 = 0xfa
1 = 0xfa
2 = 0x00
3 = 0x00
4 = 0x00
5 = 0x00
6 = 0x00
7 = 0x00
8 = 0x00
9 = 0x00
10 = 0x00
11 = 0x00
12 = 0x00
13 = 0x00
14 = 0x00
15 = 0x00
}
head = 2
expecting_typematic = false
expecting_led_write = false
delay = 1
repeat_rate = 11
led_status = 0
scanning_enabled = true
}
mouse_internal_buffer = {
num_elements = 0
buffer = {
0 = 0x00
1 = 0x00
2 = 0x00
3 = 0x00
4 = 0x00
5 = 0x00
6 = 0x00
7 = 0x00
8 = 0x00
9 = 0x00
10 = 0x00
11 = 0x00
12 = 0x00
13 = 0x00
14 = 0x00
15 = 0x00
16 = 0x00
17 = 0x00
18 = 0x00
19 = 0x00
20 = 0x00
21 = 0x00
22 = 0x00
23 = 0x00
24 = 0x00
25 = 0x00
26 = 0x00
27 = 0x00
28 = 0x00
29 = 0x00
30 = 0x00
31 = 0x00
32 = 0x00
33 = 0x00
34 = 0x00
35 = 0x00
36 = 0x00
37 = 0x00
38 = 0x00
39 = 0x00
40 = 0x00
41 = 0x00
42 = 0x00
43 = 0x00
44 = 0x00
45 = 0x00
46 = 0x00
47 = 0x00
}
head = 0
}
controller_Q = {
0 = 0x00
1 = 0x00
2 = 0x00
3 = 0x00
4 = 0x00
}
controller_Qsize = 0
controller_Qsource = 0
}

View File

View File

@ -0,0 +1,24 @@
memory = {
ram = memory.ram
len = 16777216
allocated = 16777216
used_blocks = 5
mapping = {
blk0 = 0
blk1 = 1
blk2 = 4
blk3 = 4294967295
blk4 = 4294967295
blk5 = 4294967295
blk6 = 4294967295
blk7 = 4294967295
blk8 = 4294967295
blk9 = 4294967295
blk10 = 4294967295
blk11 = 4294967295
blk12 = 4294967295
blk13 = 4294967295
blk14 = 3
blk15 = 2
}
}

Binary file not shown.

View File

@ -0,0 +1,110 @@
pc_system = {
enable_a20 = true
a20_mask = 0xffffffffffffffff
currCountdown = 42
currCountdownPeriod = 500
ticksTotal = 80001500
lastTimeUsec = 0
usecSinceLast = 0
HRQ = false
timer = {
0 = {
inUse = true
period = 4294967295
timeToFire = 4294967295
active = true
continuous = true
}
1 = {
inUse = true
period = 1
timeToFire = 1
active = false
continuous = false
}
2 = {
inUse = true
period = 17985
timeToFire = 80015867
active = true
continuous = false
}
3 = {
inUse = true
period = 5000000
timeToFire = 5000000
active = false
continuous = true
}
4 = {
inUse = true
period = 5000000
timeToFire = 85000000
active = true
continuous = true
}
5 = {
inUse = true
period = 1220
timeToFire = 80001220
active = false
continuous = false
}
6 = {
inUse = true
period = 1250
timeToFire = 1250
active = false
continuous = false
}
7 = {
inUse = true
period = 1500000
timeToFire = 81000000
active = true
continuous = true
}
8 = {
inUse = true
period = 500
timeToFire = 80002000
active = true
continuous = true
}
9 = {
inUse = true
period = 1250
timeToFire = 80002500
active = true
continuous = true
}
10 = {
inUse = true
period = 500000
timeToFire = 80177346
active = true
continuous = false
}
11 = {
inUse = true
period = 1
timeToFire = 1
active = false
continuous = false
}
12 = {
inUse = true
period = 1
timeToFire = 1
active = false
continuous = false
}
13 = {
inUse = true
period = 1
timeToFire = 1
active = false
continuous = false
}
}
}

View File

@ -0,0 +1,40 @@
pic = {
master = {
interrupt_offset = 0x08
auto_eoi = 0x00
imr = 0xb8
isr = 0x00
irr = 0x01
read_reg_select = 0
irq = 0x00
lowest_priority = 0x07
INT = true
IRQ_in = 0x01
in_init = false
requires_4 = true
byte_expected = 4
special_mask = false
polled = false
rotate_on_autoeoi = false
edge_level = 0x00
}
slave = {
interrupt_offset = 0x70
auto_eoi = 0x00
imr = 0x8f
isr = 0x00
irr = 0x00
read_reg_select = 0
irq = 0x00
lowest_priority = 0x07
INT = false
IRQ_in = 0x00
in_init = false
requires_4 = true
byte_expected = 4
special_mask = false
polled = false
rotate_on_autoeoi = false
edge_level = 0x00
}
}

View File

@ -0,0 +1,82 @@
pit = {
speaker_data_on = 0x00
refresh_clock_div2 = true
last_usec = 15999576
last_next_event_time = 47244
total_ticks = 1192675
total_usec = 999576
counter = {
0 = {
GATE = true
OUTpin = true
count = 47245
outlatch = 0
inlatch = 0
status_latch = 0
rw_mode = 3
mode = 2
bcd_mode = false
null_count = false
count_LSB_latched = false
count_MSB_latched = false
status_latched = false
count_binary = 47245
triggerGATE = false
write_state = 2
read_state = 2
count_written = true
first_pass = false
state_bit_1 = false
state_bit_2 = false
next_change_time = 47244
}
1 = {
GATE = true
OUTpin = true
count = 46122
outlatch = 0
inlatch = 0
status_latch = 0
rw_mode = 1
mode = 4
bcd_mode = false
null_count = false
count_LSB_latched = false
count_MSB_latched = false
status_latched = false
count_binary = 46122
triggerGATE = false
write_state = 0
read_state = 0
count_written = true
first_pass = false
state_bit_1 = false
state_bit_2 = false
next_change_time = 0
}
2 = {
GATE = false
OUTpin = true
count = 65535
outlatch = 0
inlatch = 65535
status_latch = 0
rw_mode = 3
mode = 0
bcd_mode = false
null_count = false
count_LSB_latched = false
count_MSB_latched = false
status_latched = false
count_binary = 65535
triggerGATE = false
write_state = 2
read_state = 2
count_written = true
first_pass = true
state_bit_1 = false
state_bit_2 = false
next_change_time = 0
}
}
}

View File

@ -0,0 +1,488 @@
serial = {
0 = {
ls_interrupt = false
ms_interrupt = false
rx_interrupt = false
tx_interrupt = false
fifo_interrupt = false
ls_ipending = false
ms_ipending = false
rx_ipending = false
fifo_ipending = false
rx_fifo_end = 0
tx_fifo_end = 0
baudrate = 115200
rx_pollstate = 0
rxbuffer = 0x00
thrbuffer = 0x00
int_enable = {
rxdata_enable = false
txhold_enable = false
rxlstat_enable = false
modstat_enable = false
}
int_ident = {
ipending = false
int_ID = 0x01
}
fifo_cntl = {
enable = false
rxtrigger = 0x00
}
line_cntl = {
wordlen_sel = 0x00
stopbits = false
parity_enable = false
evenparity_sel = false
stick_parity = false
break_cntl = false
dlab = false
}
modem_cntl = {
dtr = false
rts = false
out1 = false
out2 = false
local_loopback = false
}
line_status = {
rxdata_ready = false
overrun_error = false
parity_error = false
framing_error = false
break_int = false
thr_empty = true
tsr_empty = true
fifo_error = false
}
modem_status = {
delta_cts = false
delta_dsr = false
ri_trailedge = false
delta_dcd = false
cts = true
dsr = true
ri = false
dcd = false
}
scratch = 0x00
tsrbuffer = 0x00
rx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
tx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
divisor_lsb = 0x01
divisor_msb = 0x00
}
1 = {
ls_interrupt = false
ms_interrupt = false
rx_interrupt = false
tx_interrupt = false
fifo_interrupt = false
ls_ipending = false
ms_ipending = false
rx_ipending = false
fifo_ipending = false
rx_fifo_end = 0
tx_fifo_end = 0
baudrate = 0
rx_pollstate = 0
rxbuffer = 0x00
thrbuffer = 0x00
int_enable = {
rxdata_enable = false
txhold_enable = false
rxlstat_enable = false
modstat_enable = false
}
int_ident = {
ipending = false
int_ID = 0x00
}
fifo_cntl = {
enable = false
rxtrigger = 0x00
}
line_cntl = {
wordlen_sel = 0x00
stopbits = false
parity_enable = false
evenparity_sel = false
stick_parity = false
break_cntl = false
dlab = false
}
modem_cntl = {
dtr = false
rts = false
out1 = false
out2 = false
local_loopback = false
}
line_status = {
rxdata_ready = false
overrun_error = false
parity_error = false
framing_error = false
break_int = false
thr_empty = false
tsr_empty = false
fifo_error = false
}
modem_status = {
delta_cts = false
delta_dsr = false
ri_trailedge = false
delta_dcd = false
cts = false
dsr = false
ri = false
dcd = false
}
scratch = 0x00
tsrbuffer = 0x00
rx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
tx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
divisor_lsb = 0x00
divisor_msb = 0x00
}
2 = {
ls_interrupt = false
ms_interrupt = false
rx_interrupt = false
tx_interrupt = false
fifo_interrupt = false
ls_ipending = false
ms_ipending = false
rx_ipending = false
fifo_ipending = false
rx_fifo_end = 0
tx_fifo_end = 0
baudrate = 0
rx_pollstate = 0
rxbuffer = 0x00
thrbuffer = 0x00
int_enable = {
rxdata_enable = false
txhold_enable = false
rxlstat_enable = false
modstat_enable = false
}
int_ident = {
ipending = false
int_ID = 0x00
}
fifo_cntl = {
enable = false
rxtrigger = 0x00
}
line_cntl = {
wordlen_sel = 0x00
stopbits = false
parity_enable = false
evenparity_sel = false
stick_parity = false
break_cntl = false
dlab = false
}
modem_cntl = {
dtr = false
rts = false
out1 = false
out2 = false
local_loopback = false
}
line_status = {
rxdata_ready = false
overrun_error = false
parity_error = false
framing_error = false
break_int = false
thr_empty = false
tsr_empty = false
fifo_error = false
}
modem_status = {
delta_cts = false
delta_dsr = false
ri_trailedge = false
delta_dcd = false
cts = false
dsr = false
ri = false
dcd = false
}
scratch = 0x00
tsrbuffer = 0x00
rx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
tx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
divisor_lsb = 0x00
divisor_msb = 0x00
}
3 = {
ls_interrupt = false
ms_interrupt = false
rx_interrupt = false
tx_interrupt = false
fifo_interrupt = false
ls_ipending = false
ms_ipending = false
rx_ipending = false
fifo_ipending = false
rx_fifo_end = 0
tx_fifo_end = 0
baudrate = 0
rx_pollstate = 0
rxbuffer = 0x00
thrbuffer = 0x00
int_enable = {
rxdata_enable = false
txhold_enable = false
rxlstat_enable = false
modstat_enable = false
}
int_ident = {
ipending = false
int_ID = 0x00
}
fifo_cntl = {
enable = false
rxtrigger = 0x00
}
line_cntl = {
wordlen_sel = 0x00
stopbits = false
parity_enable = false
evenparity_sel = false
stick_parity = false
break_cntl = false
dlab = false
}
modem_cntl = {
dtr = false
rts = false
out1 = false
out2 = false
local_loopback = false
}
line_status = {
rxdata_ready = false
overrun_error = false
parity_error = false
framing_error = false
break_int = false
thr_empty = false
tsr_empty = false
fifo_error = false
}
modem_status = {
delta_cts = false
delta_dsr = false
ri_trailedge = false
delta_dcd = false
cts = false
dsr = false
ri = false
dcd = false
}
scratch = 0x00
tsrbuffer = 0x00
rx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
tx_fifo = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
}
divisor_lsb = 0x00
divisor_msb = 0x00
}
detect_mouse = 0
mouse_delayed_dx = 0
mouse_delayed_dy = 0
mouse_delayed_dz = 0
mouse_internal_buffer = {
num_elements = 0
buffer = {
0x00 = 0x00
0x01 = 0x00
0x02 = 0x00
0x03 = 0x00
0x04 = 0x00
0x05 = 0x00
0x06 = 0x00
0x07 = 0x00
0x08 = 0x00
0x09 = 0x00
0x0a = 0x00
0x0b = 0x00
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0x00
0x10 = 0x00
0x11 = 0x00
0x12 = 0x00
0x13 = 0x00
0x14 = 0x00
0x15 = 0x00
0x16 = 0x00
0x17 = 0x00
0x18 = 0x00
0x19 = 0x00
0x1a = 0x00
0x1b = 0x00
0x1c = 0x00
0x1d = 0x00
0x1e = 0x00
0x1f = 0x00
0x20 = 0x00
0x21 = 0x00
0x22 = 0x00
0x23 = 0x00
0x24 = 0x00
0x25 = 0x00
0x26 = 0x00
0x27 = 0x00
0x28 = 0x00
0x29 = 0x00
0x2a = 0x00
0x2b = 0x00
0x2c = 0x00
0x2d = 0x00
0x2e = 0x00
0x2f = 0x00
}
head = 0
}
}

147
tools/tests/qsort/state/vga Normal file
View File

@ -0,0 +1,147 @@
vga = {
misc_output = {
color_emulation = true
enable_ram = true
clock_select = 1
select_high_bank = true
horiz_sync_pol = true
vert_sync_pol = false
}
CRTC = {
address = 0x0f
reg = {
0x00 = 0x5f
0x01 = 0x4f
0x02 = 0x50
0x03 = 0x82
0x04 = 0x55
0x05 = 0x81
0x06 = 0xbf
0x07 = 0x1f
0x08 = 0x00
0x09 = 0x4f
0x0a = 0x0e
0x0b = 0x0f
0x0c = 0x00
0x0d = 0x00
0x0e = 0x00
0x0f = 0xa0
0x10 = 0x9c
0x11 = 0x8e
0x12 = 0x8f
0x13 = 0x28
0x14 = 0x1f
0x15 = 0x96
0x16 = 0xb9
0x17 = 0xa3
0x18 = 0xff
}
write_protect = true
}
attribute_ctrl = {
flip_flop = false
address = 0x00000000
video_enabled = true
palette_reg = {
0x00 = 0x00
0x01 = 0x01
0x02 = 0x02
0x03 = 0x03
0x04 = 0x04
0x05 = 0x05
0x06 = 0x14
0x07 = 0x07
0x08 = 0x38
0x09 = 0x39
0x0a = 0x3a
0x0b = 0x3b
0x0c = 0x3c
0x0d = 0x3d
0x0e = 0x3e
0x0f = 0x3f
}
overscan_color = 0x00
color_plane_enable = 0x0f
horiz_pel_panning = 0x08
color_select = 0x00
mode_ctrl = {
graphics_alpha = false
display_type = false
enable_line_graphics = true
blink_intensity = true
pixel_panning_compat = false
pixel_clock_select = false
internal_palette_size = false
}
}
pel = {
write_data_register = 0x00
write_data_cycle = 0
read_data_register = 0x00
read_data_cycle = 0
dac_state = 0
mask = 0xff
}
pel_data = vga.pel_data
graphics_ctrl = {
index = 5
set_reset = 0
enable_set_reset = 0
color_compare = 0
data_rotate = 0
raster_op = 0
read_map_select = 0
write_mode = 0
read_mode = 0
odd_even = true
chain_odd_even = true
shift_reg = 0
graphics_alpha = false
memory_mapping = 3
color_dont_care = 0x0f
bitmask = 0xff
latch0 = 0x00
latch1 = 0x00
latch2 = 0x00
latch3 = 0x00
}
sequencer = {
index = 3
map_mask = 3
reset1 = true
reset2 = true
reg1 = 0x00
char_map_select = 0
extended_mem = true
odd_even = false
chain_four = false
}
enabled = true
line_offset = 160
line_compare = 1023
vertical_display_end = 399
charmap_address = 0
x_dotclockdiv2 = false
y_doublescan = true
last_bpp = 8
memory = vga.memory
vbe = {
cur_dispi = 0xb0c5
xres = 640
yres = 480
bpp = 8
bank = 0
enabled = false
curindex = 4
visible_screen_size = 0
offset_x = 0
offset_y = 0
virtual_xres = 640
virtual_yres = 480
virtual_start = 0
bpp_multiplier = 1
lfb_enabled = false
get_capabilities = false
dac_8bit = false
}
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,34 @@
virt_timer = {
timer = {
0 = {
inUse = true
period = 2147483647
timeToFire = 2147483647
active = true
continuous = true
}
1 = {
inUse = true
period = 3599
timeToFire = 16003175
active = true
continuous = false
}
}
current_timers_time = 15999576
timers_next_event_time = 3599
last_sequential_time = 0
virtual_next_event_time = 3599
current_virtual_time = 15999576
last_real_time = 1578924768451212
total_real_usec = 0
last_realtime_delta = 0
last_usec = 0
usec_per_second = 1000000
stored_delta = 0
last_system_usec = 0
em_last_realtime = 0
total_ticks = 0
last_realtime_ticks = 0
ticks_per_second = 1000000
}

BIN
tools/tests/qsort/system.elf Executable file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,7 @@
#instructions: 925
#memLocations: 360
#memR: 340
#memR_bytes: 1360
#memW: 292
#memW_bytes: 1168
duration: 925

BIN
tools/tests/qsort/trace.pb Normal file

Binary file not shown.