Commit graph

686 commits

Author SHA1 Message Date
Fabian
0669f7a477 make tests a more reliable 2025-09-13 19:25:51 -03:00
Fabian
f6083ac6b0 upgrade haiku to beta5
fixes rare crash

thanks @SuperMaxusa
2025-09-13 19:25:51 -03:00
Fabian
b0d20cee00 add BSD/OS, Mojo OS, XENUS, Vanadium OS, Asuro and PrettyOS
thanks @SuperMaxusa
2025-09-13 19:25:51 -03:00
Fabian
88d4ba8fe5 fix file locking test 2025-09-05 14:37:17 -03:00
Fabian
21a6318a13 improve apic timer 2025-08-25 15:03:49 -06:00
Fabian
c78885fd84 update paths 2025-08-25 15:03:49 -06:00
Fabian
3b0325d899 reactos state image test 2025-08-25 15:03:49 -06:00
Fabian
403f7168b2 add state tests 2025-08-25 15:03:49 -06:00
Fabian
dfbe60926b option to run all tests with acpi forced on 2025-08-25 15:03:49 -06:00
Fabian
244a877989 minor: move env variables to top of file 2025-08-25 15:03:49 -06:00
Fabian
80d77f23a8 add tests for BSD/OS 2025-08-25 15:03:49 -06:00
Fabian
76595e4612 Add Arch Hurd 2025-08-25 15:03:49 -06:00
Fabian
990fecb59f (breaking change) remove emulator.mount_fs: planning future simplifications for the filesystem 2025-08-25 15:03:49 -06:00
Christian Schnell
92ba111d92 refactored V86.wait_until_vga_screen_contains()
- reduced clutter and made control flow more comprehensible
- moved initial delay of 100ms to expect(), needed for keyboard buffer "cooldown" in between commands
2025-08-23 10:14:32 -06:00
Christian Schnell
47fb4e1dd2 final cleanup and alignments with the V86 codebase
- changed return value of V86.wait_until_vga_screen_contains() to boolean with true:success and false:timeout
- removed "throw" and "finally" statements in V86.wait_until_vga_screen_contains()
- removed "finally" statements in exec_test() to simplify cleanup code
- removed "export" statements (forgotten leftovers from a silly experiment)
- simplified parsing of options.timeout_msec in V86.wait_until_vga_screen_contains()
- changed line-matching function to string.startsWith()
- switched from Element.innerHTML to Element.textContent in html assignments
- relaxed rules for handling of command in expected[] in expect()
- removed unused argument "fdc" from FloppyDrive constructor
- renamed variable "tm_end" to "end"
2025-08-23 10:14:32 -06:00
Christian Schnell
e16ce249fe replaced use of RegExp.escape() with own function
RegExp.escape() is available since the May 2025 Baseline which is not yet supported at github CI, replaced with a helper function.
2025-08-23 10:14:32 -06:00
Christian Schnell
00203987f4 moved text matching code from expect() to V86.wait_until_vga_screen_contains()
All changes to V86.wait_until_vga_screen_contains() are backward compatible.
2025-08-23 10:14:32 -06:00
Christian Schnell
b91afaa821 moved FreeDOS boot floppy tests to tests/full/run.js
Moved tests using optional image files

    /images/freedos-fds/freedos.boot.disk.160K.img
    /images/freedos-fds/freedos.boot.disk.180K.img
    /images/freedos-fds/freedos.boot.disk.320K.img
    /images/freedos-fds/freedos.boot.disk.360K.img
    /images/freedos-fds/freedos.boot.disk.640K.img
    /images/freedos-fds/freedos.boot.disk.1200K.img

from tests/api/floppy.js to tests/full/run.js.

Dropped redundant 720K and 1440K FreeDOS boot floppies, these formats are already covered in tests/full/run.js.
2025-08-23 10:14:32 -06:00
Christian Schnell
26ae4dc019 removed Space Invaders boot test, already covered in tests/full/run.js 2025-08-23 10:14:32 -06:00
Christian Schnell
200219335b deactivated Space Invaders test until image file is available on github
Maybe I'm assuming the wrong file name "images/asm-space-invaders.img"?
2025-08-23 10:14:32 -06:00
Christian Schnell
e8235c5f3e added custom floppy size test using Space Invaders (~2K) 2025-08-23 10:14:32 -06:00
Christian Schnell
d7e9c64975 minor optimization 2025-08-23 10:14:32 -06:00
Christian Schnell
51998355ed reduced usage of string.endsWith() in expect() to minimum
If the command string passed to expect() is non-empty it is also used as the first expected response line, but it must be matched against the screen line using .endsWith() because any text preceding the command (usually the shell prompt) is unknown. All other response lines must now match exactly their respective screen lines.
2025-08-23 10:14:32 -06:00
Christian Schnell
0a3a406f69 fixed minor issues
- added log message for missing FreeDOS boot image files
- simplified array construction using spread (...) syntax
- removed deprecated comment about linux test failure
2025-08-23 10:14:32 -06:00
Christian Schnell
f2d8ee7334 attempt to fix the linux-test bug at github CI 2025-08-23 10:14:32 -06:00
Christian Schnell
30cd26ca58 fixed missing awaits within V86.set_fda() and V86.set_fdb()
Async methods V86.set_fda/set_fdb() were not awaiting URL-based file downloads.

This fixed a bug in the state snapshot tests, removed now uneeded call to pause(1000) after loading the image URL.
2025-08-23 10:14:32 -06:00
Christian Schnell
4a22c44bce fixed async calls to V86.set_fda() and V86.set_fdb() 2025-08-23 10:14:32 -06:00
Christian Schnell
8b13c70470 disabled Linux format command test 2025-08-23 10:14:32 -06:00
Christian Schnell
0541e3bc9b added pause command to Linux format test 2025-08-23 10:14:32 -06:00
Christian Schnell
57fb799328 added two floppy format tests, general improvements and cleanup
- added floppy format test to MS-DOS and Linux tests
- added RegExp support to expect() and support to capture its command output
- improved emulator setup and teardown
- removed most of the calls to pause()
- activated FreeDOS boot floppy tests, but conditional (they depend on image file existence on the test host)
- improved documentation of expect() function
- removed unused test with TinyCore 4.7.7, using TinyCore 11 instead
2025-08-23 10:14:32 -06:00
Christian Schnell
b909cfe802 added tests for 8 FreeDOS boot disks of different sizes 2025-08-23 10:14:32 -06:00
Christian Schnell
fc1b204d50 moved Linux test from Core-4.7.7.iso to TinyCore-11.0.iso 2025-08-23 10:14:32 -06:00
Christian Schnell
6f891de57d added two more floppy tests
- added fda state snapshot test by using delayed keyboard input for MS-DOS 6.22 (10ms inter-character delay)
- added fda floppy test using Core 4.7.7 Linux
2025-08-23 10:14:32 -06:00
Christian Schnell
5d94c6bf7b added two floppy drive tests
- renamed floppy-insert-eject.js to floppy.js
- merged and reactivated test from floppy-insert-eject.js
- added fdb test using hda guest MSDOS-6.22
2025-08-23 10:14:32 -06:00
Fabian
ccdc7b6b14 haiku beta4 only boots reliably with acpi 2025-07-02 15:01:19 +07:00
Fabian
fff0df6665 include msdos image for tests, and use curl over wget 2025-06-11 21:36:51 +07:00
Fabian
f28837785b add tests for cdrom+hda+hdb 2025-06-10 17:43:20 +07:00
Fabian
05acfb12eb add cdrom insert/eject test 2025-06-10 17:41:45 +07:00
Fabian
f81470a762 minor 2025-06-09 14:47:55 +07:00
SuperMaxusa
a07e43bc31 remove local_http flag, small fixes 2025-05-26 23:15:59 +08:00
SuperMaxusa
add1d741c5 run emulator after server, small cleanup 2025-05-26 23:15:59 +08:00
SuperMaxusa
a1c0f12961 move remaining code into if statement 2025-05-26 23:15:59 +08:00
SuperMaxusa
f344f0f40c change v86local.http to external, inline all server code into test and bench scripts, always use random available port 2025-05-26 23:15:59 +08:00
SuperMaxusa
6ce3b69be0 run a server when the emulator is ready (fixes ci) 2025-05-26 23:15:59 +08:00
SuperMaxusa
ad77448248 fix parentPort 2025-05-26 23:15:59 +08:00
SuperMaxusa
3367bedec8 use random port for server, fix console parsing for benchmark 2025-05-26 23:15:59 +08:00
SuperMaxusa
06f33e4a76 remove "use strict" after sync 2025-05-26 23:15:59 +08:00
SuperMaxusa
4fd2478d67 fix headers and worker error handling 2025-05-26 23:15:59 +08:00
SuperMaxusa
5f088cc066 release build for bench, check non-zero exit codes 2025-05-26 23:15:59 +08:00
SuperMaxusa
c8391e5347 fetch benchmark 2025-05-26 23:15:59 +08:00