Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion ofborg/src/nix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -675,7 +675,7 @@ mod tests {
}

#[test]
fn instantiation() {
fn instantiation_success() {
let ret: Result<File, File> = nix().safely(
Operation::Instantiate,
passing_eval_path().as_path(),
Expand All @@ -693,4 +693,23 @@ mod tests {
],
);
}

#[test]
fn instantiation_nixpkgs_restricted_mode() {
let ret: Result<File, File> = nix().safely(
Operation::Instantiate,
individual_eval_path().as_path(),
vec![String::from("-A"), String::from("nixpkgs-restricted-mode")],
true,
);

assert_run(
ret,
Expect::Fail,
vec![
"access to path '/fake'",
"is forbidden in restricted mode",
],
);
}
}
15 changes: 15 additions & 0 deletions ofborg/src/tasks/massrebuilder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,9 @@ impl<E: stats::SysEvents + 'static> worker::SimpleWorker for MassRebuildWorker<E
"nixos-options",
nix::Operation::Instantiate,
vec![
String::from("--arg"),
String::from("nixpkgs"),
String::from("./."),
String::from("./nixos/release.nix"),
String::from("-A"),
String::from("options"),
Expand All @@ -359,6 +362,9 @@ impl<E: stats::SysEvents + 'static> worker::SimpleWorker for MassRebuildWorker<E
"nixos-manual",
nix::Operation::Instantiate,
vec![
String::from("--arg"),
String::from("nixpkgs"),
String::from("./."),
String::from("./nixos/release.nix"),
String::from("-A"),
String::from("manual"),
Expand All @@ -370,6 +376,9 @@ impl<E: stats::SysEvents + 'static> worker::SimpleWorker for MassRebuildWorker<E
"nixpkgs-manual",
nix::Operation::Instantiate,
vec![
String::from("--arg"),
String::from("nixpkgs"),
String::from("./."),
String::from("./pkgs/top-level/release.nix"),
String::from("-A"),
String::from("manual"),
Expand All @@ -381,6 +390,9 @@ impl<E: stats::SysEvents + 'static> worker::SimpleWorker for MassRebuildWorker<E
"nixpkgs-tarball",
nix::Operation::Instantiate,
vec![
String::from("--arg"),
String::from("nixpkgs"),
String::from("./."),
String::from("./pkgs/top-level/release.nix"),
String::from("-A"),
String::from("tarball"),
Expand All @@ -392,6 +404,9 @@ impl<E: stats::SysEvents + 'static> worker::SimpleWorker for MassRebuildWorker<E
"nixpkgs-unstable-jobset",
nix::Operation::Instantiate,
vec![
String::from("--arg"),
String::from("nixpkgs"),
String::from("./."),
String::from("./pkgs/top-level/release.nix"),
String::from("-A"),
String::from("unstable"),
Expand Down
19 changes: 18 additions & 1 deletion ofborg/test-srcs/eval-mixed-failure/default.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
let
fetchGit = builtins.fetchGit or (path: assert builtins.trace ''
error: access to path '/fake' is forbidden in restricted mode
'' false; path);

nix = import <nix/config.nix>;
in rec {
in

{ nixpkgs ? fetchGit /fake }:

rec {
success = derivation {
name = "success";
system = builtins.currentSystem;
Expand Down Expand Up @@ -28,6 +36,15 @@ in rec {
"echo this ones cool" ];
};

nixpkgs-restricted-mode = derivation {
name = "nixpkgs-restricted-mode-fetchgit";
system = builtins.currentSystem;
builder = nix.shell;
args = [
"-c"
"echo hi; echo ${toString nixpkgs} > $out" ];
};

fails-instantiation = assert builtins.trace ''
You just can't frooble the frozz on this particular system.
'' false; {};
Expand Down