From 3e5d86bb0809cdc84e565880284965f1b06cf73f Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Tue, 5 Jul 2016 13:04:53 +0200 Subject: [PATCH] test the memory limit --- tests/compile-fail/oom.rs | 11 +++++++++++ tests/compile-fail/oom2.rs | 39 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 tests/compile-fail/oom.rs create mode 100644 tests/compile-fail/oom2.rs diff --git a/tests/compile-fail/oom.rs b/tests/compile-fail/oom.rs new file mode 100644 index 000000000000..83109a77e620 --- /dev/null +++ b/tests/compile-fail/oom.rs @@ -0,0 +1,11 @@ +#![feature(custom_attribute)] +#![miri(memory_size="0")] + +fn bar() { + let x = 5; + assert_eq!(x, 6); +} + +fn main() { //~ ERROR tried to allocate 4 more bytes, but only 0 bytes are free of the 0 byte memory + bar(); +} diff --git a/tests/compile-fail/oom2.rs b/tests/compile-fail/oom2.rs new file mode 100644 index 000000000000..63c51dbaa7d2 --- /dev/null +++ b/tests/compile-fail/oom2.rs @@ -0,0 +1,39 @@ +#![feature(custom_attribute)] +#![miri(memory_size="1000")] + +fn bar(i: i32) { + if i < 1000 { + bar(i + 1) //~ ERROR tried to allocate 4 more bytes, but only 1 bytes are free of the 1000 byte memory + //~^NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + //~|NOTE inside call to bar + } +} + +fn main() { //~NOTE inside call to main + bar(1); + //~^NOTE inside call to bar +}