nixpkgs/pkgs/by-name/qb/qbe/test-can-run-hello-world.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

33 lines
817 B
Nix

{ stdenv
, writeText
, qbe
}:
# The hello world program available at https://c9x.me/compile/
let helloWorld = writeText "hello-world.ssa" ''
function w $add(w %a, w %b) { # Define a function add
@start
%c =w add %a, %b # Adds the 2 arguments
ret %c # Return the result
}
export function w $main() { # Main function
@start
%r =w call $add(w 1, w 1) # Call add(1, 1)
call $printf(l $fmt, w %r, ...) # Show the result
ret 0
}
data $fmt = { b "One and one make %d!\n", b 0 }
'';
in stdenv.mkDerivation {
name = "qbe-test-can-run-hello-world";
meta.timeout = 10;
buildCommand = ''
${qbe}/bin/qbe -o asm.s ${helloWorld}
cc -o out asm.s
./out | grep 'One and one make 2!'
touch $out
'';
}