Skip to content

Commit ad910bb

Browse files
test: add tests for env_utils
1 parent e91b9d2 commit ad910bb

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed

pre-compute/src/compute/utils/env_utils.rs

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,149 @@ pub fn get_env_var_or_error(
6565
_ => Err(status_cause_if_missing),
6666
}
6767
}
68+
69+
#[cfg(test)]
70+
mod tests {
71+
use super::*;
72+
use temp_env;
73+
74+
#[test]
75+
fn name_succeeds_when_simple_environment_variable_names() {
76+
assert_eq!(
77+
TeeSessionEnvironmentVariable::IexecBulkSliceSize.name(),
78+
"IEXEC_BULK_SLICE_SIZE"
79+
);
80+
81+
assert_eq!(
82+
TeeSessionEnvironmentVariable::IexecInputFilesNumber.name(),
83+
"IEXEC_INPUT_FILES_NUMBER"
84+
);
85+
assert_eq!(
86+
TeeSessionEnvironmentVariable::IexecPreComputeOut.name(),
87+
"IEXEC_PRE_COMPUTE_OUT"
88+
);
89+
assert_eq!(
90+
TeeSessionEnvironmentVariable::IexecTaskId.name(),
91+
"IEXEC_TASK_ID"
92+
);
93+
assert_eq!(
94+
TeeSessionEnvironmentVariable::IsDatasetRequired.name(),
95+
"IS_DATASET_REQUIRED"
96+
);
97+
assert_eq!(
98+
TeeSessionEnvironmentVariable::SignTeeChallengePrivateKey.name(),
99+
"SIGN_TEE_CHALLENGE_PRIVATE_KEY"
100+
);
101+
assert_eq!(
102+
TeeSessionEnvironmentVariable::SignWorkerAddress.name(),
103+
"SIGN_WORKER_ADDRESS"
104+
);
105+
assert_eq!(
106+
TeeSessionEnvironmentVariable::WorkerHostEnvVar.name(),
107+
"WORKER_HOST_ENV_VAR"
108+
);
109+
}
110+
111+
#[test]
112+
fn name_succeeds_when_indexed_environment_variable_names() {
113+
// Test IexecDatasetChecksum
114+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetChecksum(0);
115+
assert_eq!(env_var.name(), "IEXEC_DATASET_CHECKSUM");
116+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetChecksum(1);
117+
assert_eq!(env_var.name(), "IEXEC_DATASET_1_CHECKSUM");
118+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetChecksum(10);
119+
assert_eq!(env_var.name(), "IEXEC_DATASET_42_CHECKSUM");
120+
121+
// Test IexecDatasetFilename
122+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetFilename(0);
123+
assert_eq!(env_var.name(), "IEXEC_DATASET_FILENAME");
124+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetFilename(1);
125+
assert_eq!(env_var.name(), "IEXEC_DATASET_1_FILENAME");
126+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetFilename(5);
127+
assert_eq!(env_var.name(), "IEXEC_DATASET_10_FILENAME");
128+
129+
// Test IexecDatasetKey
130+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetKey(0);
131+
assert_eq!(env_var.name(), "IEXEC_DATASET_KEY");
132+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetKey(1);
133+
assert_eq!(env_var.name(), "IEXEC_DATASET_1_KEY");
134+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetKey(20);
135+
assert_eq!(env_var.name(), "IEXEC_DATASET_5_KEY");
136+
137+
// Test IexecDatasetUrl
138+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetUrl(0);
139+
assert_eq!(env_var.name(), "IEXEC_DATASET_URL");
140+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetUrl(1);
141+
assert_eq!(env_var.name(), "IEXEC_DATASET_1_URL");
142+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetUrl(99);
143+
assert_eq!(env_var.name(), "IEXEC_DATASET_99_URL");
144+
145+
// Test IexecInputFileUrlPrefix
146+
let env_var = TeeSessionEnvironmentVariable::IexecInputFileUrlPrefix(0);
147+
assert_eq!(env_var.name(), "IEXEC_INPUT_FILE_URL_0");
148+
let env_var = TeeSessionEnvironmentVariable::IexecInputFileUrlPrefix(1);
149+
assert_eq!(env_var.name(), "IEXEC_INPUT_FILE_URL_1");
150+
let env_var = TeeSessionEnvironmentVariable::IexecInputFileUrlPrefix(123);
151+
assert_eq!(env_var.name(), "IEXEC_INPUT_FILE_URL_123");
152+
}
153+
154+
#[test]
155+
fn get_env_var_or_error_success() {
156+
let env_var = TeeSessionEnvironmentVariable::IexecTaskId;
157+
let status_cause = ReplicateStatusCause::PreComputeTaskIdMissing;
158+
159+
temp_env::with_var("IEXEC_TASK_ID", Some("test-task-id-123"), || {
160+
let result = get_env_var_or_error(env_var, status_cause.clone());
161+
assert!(result.is_ok());
162+
assert_eq!(result.unwrap(), "test-task-id-123");
163+
});
164+
}
165+
166+
#[test]
167+
fn get_env_var_or_error_fails_when_missing_variable() {
168+
let env_var = TeeSessionEnvironmentVariable::IexecTaskId;
169+
let status_cause = ReplicateStatusCause::PreComputeTaskIdMissing;
170+
171+
temp_env::with_var_unset("IEXEC_TASK_ID", || {
172+
let result = get_env_var_or_error(env_var, status_cause.clone());
173+
assert!(result.is_err());
174+
assert_eq!(result.unwrap_err(), status_cause);
175+
});
176+
}
177+
178+
#[test]
179+
fn get_env_var_or_error_succeeds_when_empty_variable() {
180+
let env_var = TeeSessionEnvironmentVariable::IexecTaskId;
181+
let status_cause = ReplicateStatusCause::PreComputeTaskIdMissing;
182+
183+
temp_env::with_var("IEXEC_TASK_ID", Some(""), || {
184+
let result = get_env_var_or_error(env_var, status_cause.clone());
185+
assert!(result.is_err());
186+
assert_eq!(result.unwrap_err(), status_cause);
187+
});
188+
}
189+
190+
#[test]
191+
fn get_env_var_or_error_succeeds_when_whitespace_only_variable() {
192+
let env_var = TeeSessionEnvironmentVariable::IexecTaskId;
193+
let status_cause = ReplicateStatusCause::PreComputeTaskIdMissing;
194+
195+
temp_env::with_var("IEXEC_TASK_ID", Some(" "), || {
196+
let result = get_env_var_or_error(env_var, status_cause.clone());
197+
assert!(result.is_ok());
198+
assert_eq!(result.unwrap(), " ");
199+
});
200+
}
201+
202+
#[test]
203+
fn get_env_var_or_error_succeeds_when_indexed_variables() {
204+
let env_var = TeeSessionEnvironmentVariable::IexecDatasetChecksum(1);
205+
let status_cause = ReplicateStatusCause::PreComputeDatasetChecksumMissing;
206+
207+
temp_env::with_var("IEXEC_DATASET_1_CHECKSUM", Some("abc123def456"), || {
208+
let result = get_env_var_or_error(env_var, status_cause.clone());
209+
assert!(result.is_ok());
210+
assert_eq!(result.unwrap(), "abc123def456");
211+
});
212+
}
213+
}

0 commit comments

Comments
 (0)