mirror of
https://github.com/Noratrieb/elven-forest.git
synced 2026-01-14 10:45:03 +01:00
56 lines
859 B
Rust
56 lines
859 B
Rust
use std::process::Command;
|
|
|
|
use crate::prelude::*;
|
|
|
|
use super::run;
|
|
|
|
#[test]
|
|
fn single_object_file() {
|
|
let ctx = ctx();
|
|
|
|
let empty = ctx.nasm(
|
|
"empty",
|
|
"
|
|
global _start
|
|
section .text
|
|
_start:
|
|
mov rax, 60
|
|
mov rdi, 0
|
|
syscall
|
|
",
|
|
);
|
|
|
|
let out = elven_wald!(ctx; empty);
|
|
run(Command::new(out));
|
|
}
|
|
|
|
#[test]
|
|
fn two_object_files() {
|
|
let ctx = ctx();
|
|
|
|
let start = ctx.nasm(
|
|
"start",
|
|
"
|
|
global _start
|
|
extern exit
|
|
|
|
section .text
|
|
_start:
|
|
call exit
|
|
",
|
|
);
|
|
let exit = ctx.nasm(
|
|
"exit",
|
|
"
|
|
global exit
|
|
section .text
|
|
exit:
|
|
mov rax, 60
|
|
mov rdi, 0
|
|
syscall
|
|
",
|
|
);
|
|
|
|
let out = elven_wald!(ctx; start, exit);
|
|
run(Command::new(out));
|
|
}
|