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: WorkerConfigWorker to test compilation on.
test_project: PathBufPath to the test project (must be a Rust project with src/main.rs or src/lib.rs).
timeout: DurationTimeout for the entire test operation.
ssh_options: SshOptionsSSH options for connections.
release_mode: boolWhether to use release mode for builds.
binary_name: Option<String>Binary name to verify (defaults to project directory name).
remote_base: StringRemote base directory for builds.
remote_path_suffix: StringUnique suffix appended to the remote project directory for this test run.
Implementations§
Source§impl RemoteCompilationTest
impl RemoteCompilationTest
Sourcepub fn new(worker: WorkerConfig, test_project: PathBuf) -> Self
pub fn new(worker: WorkerConfig, test_project: PathBuf) -> Self
Create a new remote compilation test.
Sourcepub fn with_timeout(self, timeout: Duration) -> Self
pub fn with_timeout(self, timeout: Duration) -> Self
Set the timeout for the test.
Sourcepub fn with_ssh_options(self, options: SshOptions) -> Self
pub fn with_ssh_options(self, options: SshOptions) -> Self
Set SSH options.
Sourcepub fn with_release_mode(self, release: bool) -> Self
pub fn with_release_mode(self, release: bool) -> Self
Set release mode (default: true).
Sourcepub fn with_binary_name(self, name: impl Into<String>) -> Self
pub fn with_binary_name(self, name: impl Into<String>) -> Self
Set the binary name to verify.
Sourcepub fn with_remote_path_suffix(self, suffix: impl AsRef<str>) -> Self
pub fn with_remote_path_suffix(self, suffix: impl AsRef<str>) -> Self
Set the remote project path suffix.
Sourcepub async fn run(&self) -> Result<VerificationResult>
pub async fn run(&self) -> Result<VerificationResult>
Run the remote compilation verification test.
This performs the full pipeline:
- Apply test change to make binary unique
- Build locally for reference hash
- rsync source to worker
- Build on worker
- rsync artifacts back
- Compare hashes
Trait Implementations§
Source§impl Clone for RemoteCompilationTest
impl Clone for RemoteCompilationTest
Source§fn clone(&self) -> RemoteCompilationTest
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RemoteCompilationTest
impl Debug for RemoteCompilationTest
Auto Trait Implementations§
impl Freeze for RemoteCompilationTest
impl RefUnwindSafe for RemoteCompilationTest
impl Send for RemoteCompilationTest
impl Sync for RemoteCompilationTest
impl Unpin for RemoteCompilationTest
impl UnsafeUnpin for RemoteCompilationTest
impl UnwindSafe for RemoteCompilationTest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more