Mea culpa, I forgot in that instance to add a block device to the list of okay to destroy. Here is the original error with the XFS block device (/dev/sda1) included in the list:
test real_test_linear_device ... FAILED
failures:
---- real_test_linear_device stdout ---- thread 'real_test_linear_device' panicked at 'called `Result::unwrap()` on an `Err` value: Io(Error { repr: Os { code: 16, message: "Device or resource busy" } })', src/libcore/result.rs:860:4 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. stack backtrace: 0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace 1: std::sys_common::backtrace::_print 2: std::panicking::default_hook::{{closure}} 3: std::panicking::default_hook 4: std::panicking::rust_panic_with_hook 5: std::panicking::begin_panic_new 6: std::panicking::begin_panic_fmt 7: rust_begin_unwind 8: core::panicking::panic_fmt 9: core::result::unwrap_failed at /builddir/build/BUILD/rustc-1.20.0-src/src/libcore/ macros.rs:41 10: <core::result::Result<T, E>>::unwrap at /builddir/build/BUILD/rustc-1.20.0-src/src/libcore/ result.rs:738 11: real_tests::util::dm_tests::test_linear_device at tests/util/dm_tests.rs:51 12: core::ops::function::Fn::call at /builddir/build/BUILD/rustc-1.20.0-src/src/libcore/ops/ function.rs:48 13: real_tests::test_with_spec at tests/real_tests.rs:142 14: real_tests::real_test_linear_device at tests/real_tests.rs:155 15: <F as test::FnBox<T>>::call_box 16: __rust_maybe_catch_panic
failures: real_test_linear_device
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 16 filtered out
error: test failed, to rerun pass '--test real_tests'