diff --git a/bios/bochs-bios.bin b/bios/bochs-bios.bin new file mode 100644 index 00000000..8ea144ee Binary files /dev/null and b/bios/bochs-bios.bin differ diff --git a/bios/bochs-vgabios.bin b/bios/bochs-vgabios.bin new file mode 100644 index 00000000..311168e5 Binary files /dev/null and b/bios/bochs-vgabios.bin differ diff --git a/tests/full/run.js b/tests/full/run.js index f7ac4957..3325ea45 100755 --- a/tests/full/run.js +++ b/tests/full/run.js @@ -58,6 +58,15 @@ if(cluster.isMaster) "Welcome to FreeDOS", ], }, + { + name: "FreeDOS boot with Bochs BIOS", + fda: root_path + "/images/freedos722.img", + timeout: 10, + alternative_bios: true, + expected_texts: [ + "Welcome to FreeDOS", + ], + }, { name: "Windows 1.01 boot", fda: root_path + "/images/windows101.img", @@ -68,7 +77,7 @@ if(cluster.isMaster) { name: "Sol OS", fda: root_path + "/images/os8.dsk", - timeout: 10, + timeout: 20, expect_graphical_mode: true, expect_mouse_registered: true, actions: [ @@ -81,7 +90,7 @@ if(cluster.isMaster) { name: "Linux", cdrom: root_path + "/images/linux.iso", - timeout: 70, + timeout: 75, expected_texts: [ "/root%", "test passed", @@ -93,6 +102,22 @@ if(cluster.isMaster) }, ], }, + { + name: "Linux with Bochs BIOS", + cdrom: root_path + "/images/linux.iso", + timeout: 75, + expected_texts: [ + "/root%", + "test passed", + ], + alternative_bios: true, + actions: [ + { + on_text: "/root%", + run: "cd tests; ./test-i386 > emu.test; diff emu.test reference.test > /dev/null && echo test pas''sed || echo failed\n", + }, + ], + }, { name: "Linux 3", cdrom: root_path + "/images/linux3.iso", @@ -117,7 +142,7 @@ if(cluster.isMaster) { name: "OpenBSD", fda: root_path + "/images/openbsd.img", - timeout: 120, + timeout: 180, expected_texts: ["(I)nstall, (U)pgrade or (S)hell"], }, ]; @@ -187,8 +212,16 @@ function run_test(test, done) { console.log("Starting test: %s", test.name); - var bios = readfile(root_path + "/bios/seabios.bin"); - var vga_bios = readfile(root_path + "/bios/vgabios.bin"); + if(test.alternative_bios) + { + var bios = readfile(root_path + "/bios/bochs-bios.bin"); + var vga_bios = readfile(root_path + "/bios/bochs-vgabios.bin"); + } + else + { + var bios = readfile(root_path + "/bios/seabios.bin"); + var vga_bios = readfile(root_path + "/bios/vgabios.bin"); + } var settings = { bios: { buffer: bios },