Skip to main content

RemoteCompilationTest

Struct RemoteCompilationTest 

Source
pub struct RemoteCompilationTest {
    pub worker: WorkerConfig,
    pub test_project: PathBuf,
    pub timeout: Duration,
    pub ssh_options: SshOptions,
    pub release_mode: bool,
    pub binary_name: Option<String>,
    pub remote_base: String,
    pub remote_path_suffix: String,
}
Expand description

Configuration for a remote compilation test.

Fields§

§worker: WorkerConfig

Worker to test compilation on.

§test_project: PathBuf

Path to the test project (must be a Rust project with src/main.rs or src/lib.rs).

§timeout: Duration

Timeout for the entire test operation.

§ssh_options: SshOptions

SSH options for connections.

§release_mode: bool

Whether to use release mode for builds.

§binary_name: Option<String>

Binary name to verify (defaults to project directory name).

§remote_base: String

Remote base directory for builds.

§remote_path_suffix: String

Unique suffix appended to the remote project directory for this test run.

Implementations§

Source§

impl RemoteCompilationTest

Source

pub fn new(worker: WorkerConfig, test_project: PathBuf) -> Self

Create a new remote compilation test.

Source

pub fn with_timeout(self, timeout: Duration) -> Self

Set the timeout for the test.

Source

pub fn with_ssh_options(self, options: SshOptions) -> Self

Set SSH options.

Source

pub fn with_release_mode(self, release: bool) -> Self

Set release mode (default: true).

Source

pub fn with_binary_name(self, name: impl Into<String>) -> Self

Set the binary name to verify.

Source

pub fn with_remote_path_suffix(self, suffix: impl AsRef<str>) -> Self

Set the remote project path suffix.

Source

pub async fn run(&self) -> Result<VerificationResult>

Run the remote compilation verification test.

This performs the full pipeline:

  1. Apply test change to make binary unique
  2. Build locally for reference hash
  3. rsync source to worker
  4. Build on worker
  5. rsync artifacts back
  6. Compare hashes

Trait Implementations§

Source§

impl Clone for RemoteCompilationTest

Source§

fn clone(&self) -> RemoteCompilationTest

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RemoteCompilationTest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RemoteCompilationTest

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more