Haiku works

This commit is contained in:
Fabian 2020-12-31 19:14:29 -06:00
parent 47034fe588
commit f156824ebc
2 changed files with 45 additions and 12 deletions

View file

@ -621,7 +621,12 @@
id: "haiku", id: "haiku",
memory_size: 512 * 1024 * 1024, memory_size: 512 * 1024 * 1024,
hda: { hda: {
url: "images/experimental/os/haiku-r1beta1-x86_gcc2_hybrid-anyboot.iso", // doesn't work (probably SSE):
//url: HOST + "images/experimental/haiku-master-hrev54088-2020-04-28-x86_gcc2h-anyboot.iso",
// works:
url: HOST + "images/experimental/haiku-master-hrev53609-x86_gcc2h-anyboot.iso",
// works:
//url: HOST + "images/experimental/os/haiku-r1beta1-x86_gcc2_hybrid-anyboot.iso",
async: true, async: true,
}, },
name: "Haiku", name: "Haiku",

View file

@ -347,11 +347,27 @@ if(cluster.isMaster)
{ {
name: "Haiku", name: "Haiku",
skip_if_disk_image_missing: true, skip_if_disk_image_missing: true,
timeout: 60 * 15, timeout: 15 * 60,
hda: root_path + "/images/experimental/os/haiku-nightly-anyboot.image", memory_size: 512 * 1024 * 1024,
expected_serial_text: ["cx23882: init_hardware()"], hda: root_path + "/images/experimental/haiku-master-hrev53609-x86_gcc2h-anyboot.iso",
expected_serial_text: [
"cx23882: init_hardware()",
"Running post install script /boot/system/boot/post-install/sshd_keymaker.sh",
// After pressing enter in the boot dialog:
"Running first login script /boot/system/boot/first-login/default_deskbar_items.sh",
],
expect_graphical_mode: true, expect_graphical_mode: true,
expect_mouse_registered: true, expect_mouse_registered: true,
actions: [
{ after: 1 * 60 * 1000, run: "\n" },
{ after: 2 * 60 * 1000, run: "\n" },
{ after: 3 * 60 * 1000, run: "\n" },
{ after: 4 * 60 * 1000, run: "\n" },
{ after: 5 * 60 * 1000, run: "\n" },
{ after: 6 * 60 * 1000, run: "\n" },
{ after: 7 * 60 * 1000, run: "\n" },
{ after: 8 * 60 * 1000, run: "\n" },
],
}, },
{ {
name: "HelenOS", name: "HelenOS",
@ -548,7 +564,7 @@ function run_test(test, done)
bios: { url: bios }, bios: { url: bios },
vga_bios: { url: vga_bios }, vga_bios: { url: vga_bios },
autostart: true, autostart: true,
memory_size: 128 * 1024 * 1024, memory_size: test.memory_size || 128 * 1024 * 1024,
log_level: 0, log_level: 0,
}; };
@ -619,6 +635,7 @@ function run_test(test, done)
var timeout_seconds = test.timeout * TIMEOUT_EXTRA_FACTOR; var timeout_seconds = test.timeout * TIMEOUT_EXTRA_FACTOR;
var timeout = setTimeout(check_test_done, (timeout_seconds + 1) * 1000); var timeout = setTimeout(check_test_done, (timeout_seconds + 1) * 1000);
var timeouts = [timeout];
var on_text = []; var on_text = [];
var stopped = false; var stopped = false;
@ -637,7 +654,7 @@ function run_test(test, done)
{ {
var end = Date.now(); var end = Date.now();
clearTimeout(timeout); for(let timeout of timeouts) clearTimeout(timeout);
stopped = true; stopped = true;
emulator.stop(); emulator.stop();
@ -649,7 +666,7 @@ function run_test(test, done)
} }
else if(Date.now() >= test_start + timeout_seconds * 1000) else if(Date.now() >= test_start + timeout_seconds * 1000)
{ {
clearTimeout(timeout); for(let timeout of timeouts) clearTimeout(timeout);
stopped = true; stopped = true;
emulator.stop(); emulator.stop();
@ -732,10 +749,12 @@ function run_test(test, done)
{ {
var action = on_text.shift(); var action = on_text.shift();
setTimeout(() => { timeouts.push(
if(VERBOSE) console.error("Sending '%s'", action.run); setTimeout(() => {
emulator.keyboard_send_text(action.run); if(VERBOSE) console.error("Sending '%s'", action.run);
}, action.after || 0); emulator.keyboard_send_text(action.run);
}, action.after || 0)
);
} }
} }
}); });
@ -780,7 +799,16 @@ function run_test(test, done)
{ {
if(action.on_text) if(action.on_text)
{ {
on_text.push({ text: string_to_bytearray(action.on_text), run: action.run, after: action.after, }); on_text.push({ text: string_to_bytearray(action.on_text), run: action.run, after: action.after });
}
else
{
timeouts.push(
setTimeout(() => {
if(VERBOSE) console.error("Sending '%s'", action.run);
emulator.keyboard_send_text(action.run);
}, action.after || 0)
);
} }
}); });
} }