Skip to content

Commit

Permalink
Auto merge of rust-lang#126185 - matthiaskrgr:rollup-72dn1s2, r=matth…
Browse files Browse the repository at this point in the history
…iaskrgr

Rollup of 5 pull requests

Successful merges:

 - rust-lang#126137 (tests: Add ui/higher-ranked/trait-bounds/normalize-generic-arg.rs)
 - rust-lang#126146 (std::unix::process adding few specific freebsd signals to be able to id.)
 - rust-lang#126155 (Remove empty test suite `tests/run-make-fulldeps`)
 - rust-lang#126168 (std::unix::os current_exe implementation simplification for haiku.)
 - rust-lang#126175 (Use --quiet flag when installing pip dependencies)

r? `@ghost`
`@rustbot` modify labels: rollup
  • Loading branch information
bors committed Jun 9, 2024
2 parents b3ca6ee + 8875fd1 commit 4f3a276
Show file tree
Hide file tree
Showing 13 changed files with 69 additions and 42 deletions.
20 changes: 10 additions & 10 deletions library/std/src/sys/pal/unix/os.rs
Original file line number Diff line number Diff line change
Expand Up @@ -462,21 +462,21 @@ pub fn current_exe() -> io::Result<PathBuf> {

#[cfg(target_os = "haiku")]
pub fn current_exe() -> io::Result<PathBuf> {
let mut name = vec![0; libc::PATH_MAX as usize];
unsafe {
let mut info: mem::MaybeUninit<libc::image_info> = mem::MaybeUninit::uninit();
let mut cookie: i32 = 0;
// the executable can be found at team id 0
let result = libc::_get_next_image_info(
0,
&mut cookie,
info.as_mut_ptr(),
mem::size_of::<libc::image_info>(),
let result = libc::find_path(
std::ptr::null_mut(),
libc::path_base_directory::B_FIND_PATH_IMAGE_PATH,
std::ptr::null_mut(),
name.as_mut_ptr(),
name.len(),
);
if result != 0 {
if result != libc::B_OK {
use crate::io::ErrorKind;
Err(io::const_io_error!(ErrorKind::Uncategorized, "Error getting executable path"))
} else {
let name = CStr::from_ptr((*info.as_ptr()).name.as_ptr()).to_bytes();
// find_path adds the null terminator.
let name = CStr::from_ptr(name.as_ptr()).to_bytes();
Ok(PathBuf::from(OsStr::from_bytes(name)))
}
}
Expand Down
4 changes: 4 additions & 0 deletions library/std/src/sys/pal/unix/process/process_unix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1053,6 +1053,10 @@ fn signal_string(signal: i32) -> &'static str {
libc::SIGINFO => " (SIGINFO)",
#[cfg(target_os = "hurd")]
libc::SIGLOST => " (SIGLOST)",
#[cfg(target_os = "freebsd")]
libc::SIGTHR => " (SIGTHR)",
#[cfg(target_os = "freebsd")]
libc::SIGLIBRT => " (SIGLIBRT)",
_ => "",
}
}
Expand Down
14 changes: 3 additions & 11 deletions src/bootstrap/src/core/build_steps/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1487,12 +1487,6 @@ impl Step for RunMake {
}
}

host_test!(RunMakeFullDeps {
path: "tests/run-make-fulldeps",
mode: "run-make",
suite: "run-make-fulldeps"
});

default_test!(Assembly { path: "tests/assembly", mode: "assembly", suite: "assembly" });

/// Coverage tests are a bit more complicated than other test suites, because
Expand Down Expand Up @@ -1973,9 +1967,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the
add_link_lib_path(vec![llvm_libdir.trim().into()], &mut cmd);
}

if !builder.config.dry_run()
&& (matches!(suite, "run-make" | "run-make-fulldeps") || mode == "coverage-run")
{
if !builder.config.dry_run() && matches!(mode, "run-make" | "coverage-run") {
// The llvm/bin directory contains many useful cross-platform
// tools. Pass the path to run-make tests so they can use them.
// (The coverage-run tests also need these tools to process
Expand All @@ -1987,7 +1979,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the
cmd.arg("--llvm-bin-dir").arg(llvm_bin_path);
}

if !builder.config.dry_run() && matches!(suite, "run-make" | "run-make-fulldeps") {
if !builder.config.dry_run() && mode == "run-make" {
// If LLD is available, add it to the PATH
if builder.config.lld_enabled {
let lld_install_root =
Expand All @@ -2007,7 +1999,7 @@ NOTE: if you're sure you want to do this, please open an issue as to why. In the

// Only pass correct values for these flags for the `run-make` suite as it
// requires that a C++ compiler was configured which isn't always the case.
if !builder.config.dry_run() && matches!(suite, "run-make" | "run-make-fulldeps") {
if !builder.config.dry_run() && mode == "run-make" {
cmd.arg("--cc")
.arg(builder.cc(target))
.arg("--cxx")
Expand Down
2 changes: 0 additions & 2 deletions src/bootstrap/src/core/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,6 @@ const PATH_REMAP: &[(&str, &[&str])] = &[
"tests/mir-opt",
"tests/pretty",
"tests/run-make",
"tests/run-make-fulldeps",
"tests/run-pass-valgrind",
"tests/rustdoc",
"tests/rustdoc-gui",
Expand Down Expand Up @@ -828,7 +827,6 @@ impl<'a> Builder<'a> {
test::RustAnalyzer,
test::ErrorIndex,
test::Distcheck,
test::RunMakeFullDeps,
test::Nomicon,
test::Reference,
test::RustdocBook,
Expand Down
10 changes: 9 additions & 1 deletion src/ci/docker/host-x86_64/x86_64-gnu-debug/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,14 @@ ENV RUST_CONFIGURE_ARGS \
--set target.x86_64-unknown-linux-gnu.cc=clang \
--set target.x86_64-unknown-linux-gnu.cxx=clang++

# This job appears to be checking two separate things:
# - That we can build the compiler with `--enable-debug`
# (without necessarily testing the result).
# - That the tests with `//@ needs-matching-clang` pass, since they
# don't run by default unless RUSTBUILD_FORCE_CLANG_BASED_TESTS is set.
# - FIXME(https://github.com/rust-lang/rust/pull/126155#issuecomment-2156314273):
# Currently we only run the subset of tests with "clang" in their name.

ENV SCRIPT \
python3 ../x.py --stage 2 build && \
python3 ../x.py --stage 2 test tests/run-make-fulldeps --test-args clang
python3 ../x.py --stage 2 test tests/run-make --test-args clang
4 changes: 2 additions & 2 deletions src/ci/github-actions/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ runners:

envs:
env-x86_64-apple-tests: &env-x86_64-apple-tests
SCRIPT: ./x.py --stage 2 test --skip tests/ui --skip tests/rustdoc --skip tests/run-make-fulldeps
SCRIPT: ./x.py --stage 2 test --skip tests/ui --skip tests/rustdoc
RUST_CONFIGURE_ARGS: --build=x86_64-apple-darwin --enable-sanitizers --enable-profiler --set rust.jemalloc
RUSTC_RETRY_LINKER_ON_SEGFAULT: 1
MACOSX_DEPLOYMENT_TARGET: 10.12
Expand Down Expand Up @@ -294,7 +294,7 @@ auto:

- image: x86_64-apple-2
env:
SCRIPT: ./x.py --stage 2 test tests/ui tests/rustdoc tests/run-make-fulldeps
SCRIPT: ./x.py --stage 2 test tests/ui tests/rustdoc
<<: *env-x86_64-apple-tests
<<: *job-macos-xl

Expand Down
3 changes: 1 addition & 2 deletions src/doc/rustc/src/platform-support/nto-qnx.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,7 @@ export exclude_tests='
--exclude src/tools/linkchecker
--exclude tests/ui-fulldeps
--exclude rustc
--exclude rustdoc
--exclude tests/run-make-fulldeps'
--exclude rustdoc'

env $build_env \
./x.py test \
Expand Down
2 changes: 1 addition & 1 deletion src/tools/tidy/src/ext_tool_checks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ fn install_requirements(
}

let stat = Command::new(py_path)
.args(["-m", "pip", "install", "--require-hashes", "-r"])
.args(["-m", "pip", "install", "--quiet", "--require-hashes", "-r"])
.arg(src_reqs_path)
.status()?;
if !stat.success() {
Expand Down
4 changes: 0 additions & 4 deletions tests/run-make-fulldeps/README.md

This file was deleted.

1 change: 0 additions & 1 deletion tests/ui/feature-gates/feature-gate-extern_prelude.rs

This file was deleted.

8 changes: 0 additions & 8 deletions tests/ui/feature-gates/feature-gate-extern_prelude.stderr

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
error[E0284]: type annotations needed: cannot satisfy `for<'a> <_ as Trait<'a>>::Assoc <: <T as Trait<'_>>::Assoc`
--> $DIR/rigid-equate-projections-in-higher-ranked-fn-signature.rs:27:50
|
LL | let _: for<'a> fn(<_ as Trait<'a>>::Assoc) = foo::<T>();
| ^^^^^^^^^^ cannot satisfy `for<'a> <_ as Trait<'a>>::Assoc <: <T as Trait<'_>>::Assoc`

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0284`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
//@ revisions: current next
//@[current] check-pass
//@[next] compile-flags: -Znext-solver
//@[next] check-fail
//@ ignore-compare-mode-next-solver (explicit revisions)

/// This triggers an ICE with (and without) `--emit metadata` using the old
/// trait solver:
/// ```
/// rustc +nightly-2023-01-09 \
/// tests/ui/higher-ranked/trait-bounds/rigid-equate-projections-in-higher-ranked-fn-signature.rs
/// ```
/// The ICE was unknowingly fixed by
/// <https://github.com/rust-lang/rust/pull/101947> in `nightly-2023-01-10`.
/// This is a regression test for that fixed ICE. For the next solver we simply
/// make sure there is a compiler error.

trait Trait<'a> {
type Assoc;
}

fn foo<T: for<'a> Trait<'a>>() -> for<'a> fn(<T as Trait<'a>>::Assoc) {
todo!()
}

fn bar<T: for<'a> Trait<'a>>() {
let _: for<'a> fn(<_ as Trait<'a>>::Assoc) = foo::<T>(); //[next]~ ERROR type annotations needed
}

fn main() {}

0 comments on commit 4f3a276

Please sign in to comment.