Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Odd issues with target/debug/ dir at compile time (in no-panic) #5

Open
kentfredric opened this issue Oct 3, 2019 · 1 comment
Open

Comments

@kentfredric
Copy link
Member

I've stumbled upon an odd bug I can't really explain and putting it here down for later triage.

Currently I can't enable tests for no-panic as when run, they fail as follows:

    Running `/var/tmp/portage/dev-rust/no-panic-0.1.11/work/debug/deps/no_panic-c7147136cd4e7936`

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running `/var/tmp/portage/dev-rust/no-panic-0.1.11/work/debug/deps/test-33985f05d64a442c`

running 11 tests
    Finished dev [unoptimized + debuginfo] target(s) in 0.07s
error: extern location for no_panic does not exist: target/debug/libno_panic.so
error: extern location for no_panic does not exist: target/debug/libno_panic.so
error: extern location for no_panic does not exist: target/debug/libno_panic.so



error: extern location for no_panic does not exist: target/debug/libno_panic.so
error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmpqi2IW3/test_lifetime_elision.rs:1:5
  |
1 | use no_panic :: no_panic ;struct Buffer { bytes : [ u8 ; 24 ] , } # [ no_panic ] fn demo (
  |     ^^^^^^^^ can't find crate

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmpKf03vA/test_borrow_from_mut_self.rs:1:5
  |
1 | use no_panic :: no_panic ;struct S { data : usize , } impl S {
  |     ^^^^^^^^ can't find crate


error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmp0Qcgxb/test_method_in_impl.rs:1:5
  |
1 | use no_panic :: no_panic ;struct S ; impl S {
  |     ^^^^^^^^ can't find crate

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmphlilEe/test_readme.rs:1:5
  |
1 | use no_panic :: no_panic ;# [ no_panic ] fn demo ( s : & str ) -> & str { & s [ 1 .. ] } fn main (  ) {
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors
error: aborting due to 2 previous errors
error: aborting due to 2 previous errors

error: aborting due to 2 previous errors



For more information about this error, try `rustc --explain E0463`.
For more information about this error, try `rustc --explain E0463`.
For more information about this error, try `rustc --explain E0463`.For more information about this error, try `rustc --explain E0463`.

test no_panic::test_borrow_from_mut_self ... FAILED
test no_panic::test_method_in_impl ... FAILED
test no_panic::test_lifetime_elision ... FAILED
test link_error::test_readme ... FAILED
error: extern location for no_panic does not exist: target/debug/libno_panic.so

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmpFLwCWo/test_mut_argument.rs:1:5
  |
1 | use no_panic :: no_panic ;# [ no_panic ] fn demo ( mut i : i32 ) -> i32 { i += 1 ; i } fn main (  ) {
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0463`.
error: extern location for no_panic does not exist: target/debug/libno_panic.so

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmp3Dulm8/test_readme.rs:1:5
  |
1 | use no_panic :: no_panic ;# [ no_panic ] fn demo ( s : & str ) -> & str { & s [ 1 .. ] } fn main (  ) {
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0463`.
error: extern location for no_panic does not exist: target/debug/libno_panic.so

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmpqSMcwM/test_ref_argument.rs:1:5
  |
1 | use no_panic :: no_panic ;# [ no_panic ] fn demo ( ref i : i32 ) -> i32 { * i } fn main (  ) {
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0463`.
error: extern location for no_panic does not exist: target/debug/libno_panic.so

test no_panic::test_mut_argument ... FAILED
error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmprIPXVN/test_receiver_lifetime_elision.rs:1:5
  |
1 | use no_panic :: no_panic ;struct Buffer { bytes : [ u8 ; 24 ] , } impl Buffer {
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0463`.
test no_panic::test_readme ... FAILED
test no_panic::test_ref_argument ... FAILED
test no_panic::test_receiver_lifetime_elision ... FAILED
error: extern location for no_panic does not exist: target/debug/libno_panic.so

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmpoF36Hc/test_self_in_vec.rs:1:5
  |
1 | use no_panic :: no_panic ;struct S { data : usize , } impl S {
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0463`.
test no_panic::test_self_in_vec ... FAILED
error: extern location for no_panic does not exist: target/debug/libno_panic.so

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmpgcoUa6/test_self_in_macro_containing_fn.rs:1:5
  |
1 | use no_panic :: no_panic ;pub struct S { data : usize , } macro_rules ! emit {
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0463`.
error: extern location for no_panic does not exist: target/debug/libno_panic.so

error[E0463]: can't find crate for `no_panic`
 --> /var/tmp/portage/dev-rust/no-panic-0.1.11/temp/.tmpHmaOSl/test_ref_mut_argument.rs:1:5
  |
1 | use no_panic :: no_panic ;# [ no_panic ] fn demo ( ref mut i : i32 ) -> i32 { * i += 1 ; * i } fn main (
  |     ^^^^^^^^ can't find crate

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0463`.
test no_panic::test_self_in_macro_containing_fn ... FAILED
test no_panic::test_ref_mut_argument ... FAILED

failures:

---- no_panic::test_borrow_from_mut_self stdout ----
thread 'no_panic::test_borrow_from_mut_self' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_method_in_impl stdout ----
thread 'no_panic::test_method_in_impl' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

---- no_panic::test_lifetime_elision stdout ----
thread 'no_panic::test_lifetime_elision' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- link_error::test_readme stdout ----
thread 'link_error::test_readme' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_mut_argument stdout ----
thread 'no_panic::test_mut_argument' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_readme stdout ----
thread 'no_panic::test_readme' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_ref_argument stdout ----
thread 'no_panic::test_ref_argument' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_receiver_lifetime_elision stdout ----
thread 'no_panic::test_receiver_lifetime_elision' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_self_in_vec stdout ----
thread 'no_panic::test_self_in_vec' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_self_in_macro_containing_fn stdout ----
thread 'no_panic::test_self_in_macro_containing_fn' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5

---- no_panic::test_ref_mut_argument stdout ----
thread 'no_panic::test_ref_mut_argument' panicked at 'assertion failed: status.success()', tests/compiletest/mod.rs:40:5


failures:
    link_error::test_readme
    no_panic::test_borrow_from_mut_self
    no_panic::test_lifetime_elision
    no_panic::test_method_in_impl
    no_panic::test_mut_argument
    no_panic::test_readme
    no_panic::test_receiver_lifetime_elision
    no_panic::test_ref_argument
    no_panic::test_ref_mut_argument
    no_panic::test_self_in_macro_containing_fn
    no_panic::test_self_in_vec

test result: FAILED. 0 passed; 11 failed; 0 ignored; 0 measured; 0 filtered out

error: test failed, to rerun pass '--test test'

The file definitely exists:

/var/tmp/portage/dev-rust/no-panic-0.1.11/work # ls -lah debug/
total 28M
drwxr-xr-x  8 portage portage 4.0K Oct  3 21:41 .
drwx------  6 portage portage 4.0K Oct  3 21:41 ..
drwxr-xr-x 10 portage portage 4.0K Oct  3 21:39 build
-rw-r--r--  1 portage portage    0 Oct  3 21:39 .cargo-lock
drwxr-xr-x  2 portage portage  12K Oct  3 21:41 deps
drwxr-xr-x  2 portage portage 4.0K Oct  3 21:39 examples
drwxr-xr-x 27 portage portage 4.0K Oct  3 21:39 .fingerprint
drwxr-xr-x  5 portage portage 4.0K Oct  3 21:41 incremental
-rw-r--r--  1 portage portage  143 Oct  3 21:41 libno_panic.d
-rwxrwxr-x  2 portage portage  26M Oct  3 21:41 libno_panic.so
drwxr-xr-x  2 portage portage 4.0K Oct  3 21:39 native
-rwxrwxr-x  2 portage portage  24K Oct  3 21:41 no_panic-c7147136cd4e7936
-rw-r--r--  1 portage portage  154 Oct  3 21:41 no_panic-c7147136cd4e7936.d
-rwxrwxr-x  2 portage portage 2.1M Oct  3 21:41 test-33985f05d64a442c
-rw-r--r--  1 portage portage  315 Oct  3 21:41 test-33985f05d64a442c.d

Its possibly some bad hard-coded logic in no-panic though.

@kentfredric
Copy link
Member Author

Hmm, does look like some bad code in a test.

// no-panic-0.1.11/tests/compiletest/mod.rs
   let status = Command::new("rustc")
        .arg("--crate-name")
        .arg(name)
        .arg(rs)
        .arg("--edition=2018")
        .arg("-C")
        .arg("opt-level=3")
        .arg("--emit=asm")
        .arg("--out-dir")
        .arg(tempdir.path())
        .arg("--extern")
        .arg("no_panic=target/debug/libno_panic.so")
        .status()
        .expect("failed to execute rustc");

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant