|
1 | 1 | use crate::*; |
2 | | -use curl::easy::Easy; |
3 | 2 | use derive_more::*; |
4 | | -use std::fs; |
5 | 3 |
|
6 | 4 | pub const VALID_CONFIGS: &[&str] = &[ |
7 | 5 | "mkl-dynamic-ilp64-iomp", |
@@ -146,41 +144,6 @@ impl Config { |
146 | 144 | } |
147 | 145 | } |
148 | 146 | } |
149 | | - |
150 | | - /// Download archive from AWS S3, and expand into `${out_dir}/*.so` |
151 | | - pub fn download<P: AsRef<Path>>(&self, out_dir: P) -> Result<()> { |
152 | | - let out_dir = out_dir.as_ref(); |
153 | | - if out_dir.exists() { |
154 | | - fs::create_dir_all(&out_dir)?; |
155 | | - } |
156 | | - let data = read_from_url(&format!("{}/{}.tar.zst", s3_addr(), self.name()))?; |
157 | | - let zstd = zstd::stream::read::Decoder::new(data.as_slice())?; |
158 | | - let mut arc = tar::Archive::new(zstd); |
159 | | - arc.unpack(&out_dir)?; |
160 | | - Ok(()) |
161 | | - } |
162 | | -} |
163 | | - |
164 | | -/// Helper for download file from URL |
165 | | -/// |
166 | | -/// - This function expands obtained data into memory space |
167 | | -/// |
168 | | -fn read_from_url(url: &str) -> Result<Vec<u8>> { |
169 | | - let mut data = Vec::new(); |
170 | | - let mut handle = Easy::new(); |
171 | | - handle.fail_on_error(true)?; |
172 | | - handle.url(url)?; |
173 | | - { |
174 | | - let mut transfer = handle.transfer(); |
175 | | - transfer |
176 | | - .write_function(|new_data| { |
177 | | - data.extend_from_slice(new_data); |
178 | | - Ok(new_data.len()) |
179 | | - }) |
180 | | - .unwrap(); |
181 | | - transfer.perform().unwrap(); |
182 | | - } |
183 | | - Ok(data) |
184 | 147 | } |
185 | 148 |
|
186 | 149 | #[cfg(test)] |
@@ -220,49 +183,4 @@ mod tests { |
220 | 183 | assert!(Config::from_str("mkl-static-lp64-omp").is_err()); |
221 | 184 | Ok(()) |
222 | 185 | } |
223 | | - |
224 | | - macro_rules! impl_test_download { |
225 | | - ($name:expr) => { |
226 | | - paste::item! { |
227 | | - #[test] |
228 | | - fn [<download_$name>]() -> Result<()> { |
229 | | - let name = $name; |
230 | | - let cfg = Config::from_str(name)?; |
231 | | - cfg.download(format!("test_download/{}", name))?; |
232 | | - Ok(()) |
233 | | - } |
234 | | - } |
235 | | - }; |
236 | | - } |
237 | | - |
238 | | - #[cfg(target_os = "windows")] |
239 | | - mod macos { |
240 | | - use super::*; |
241 | | - impl_test_download!("mkl-dynamic-lp64-seq"); |
242 | | - impl_test_download!("mkl-dynamic-ilp64-seq"); |
243 | | - impl_test_download!("mkl-static-lp64-seq"); |
244 | | - impl_test_download!("mkl-static-ilp64-seq"); |
245 | | - } |
246 | | - |
247 | | - #[cfg(target_os = "macos")] |
248 | | - mod macos { |
249 | | - use super::*; |
250 | | - impl_test_download!("mkl-dynamic-lp64-seq"); |
251 | | - impl_test_download!("mkl-dynamic-lp64-iomp"); |
252 | | - impl_test_download!("mkl-dynamic-ilp64-seq"); |
253 | | - impl_test_download!("mkl-dynamic-ilp64-iomp"); |
254 | | - } |
255 | | - |
256 | | - #[cfg(target_os = "linux")] |
257 | | - mod linux { |
258 | | - use super::*; |
259 | | - impl_test_download!("mkl-dynamic-lp64-seq"); |
260 | | - impl_test_download!("mkl-dynamic-lp64-iomp"); |
261 | | - impl_test_download!("mkl-dynamic-ilp64-seq"); |
262 | | - impl_test_download!("mkl-dynamic-ilp64-iomp"); |
263 | | - impl_test_download!("mkl-static-lp64-seq"); |
264 | | - impl_test_download!("mkl-static-lp64-iomp"); |
265 | | - impl_test_download!("mkl-static-ilp64-seq"); |
266 | | - impl_test_download!("mkl-static-ilp64-iomp"); |
267 | | - } |
268 | 186 | } |
0 commit comments