summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-10-24 01:14:45 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-10-24 01:14:45 +0000
commitb6330719b696a4c2a3e707a37f6f21f84ef8f554 (patch)
treeb54dcd4474b7f6195f7426d1c1ac3867c7fe5729
parentc63ba63bb78506917e471738b782ea8b1a70de3d (diff)
parenta08a6ef78680ee13f4901314759352bb449c6a54 (diff)
downloadp9-b6330719b696a4c2a3e707a37f6f21f84ef8f554.tar.gz
Snap for 6927337 from a08a6ef78680ee13f4901314759352bb449c6a54 to sc-release
Change-Id: I5d6dc448ed6fe9acecc07d2e79e81ad746745f04
-rw-r--r--Android.bp47
-rw-r--r--TEST_MAPPING13
-rw-r--r--src/server/mod.rs34
-rw-r--r--src/server/tests.rs44
-rw-r--r--wire_format_derive/Android.bp13
5 files changed, 112 insertions, 39 deletions
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..126d2c0
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,47 @@
+// This file is generated by cargo2android.py --run --device --tests --dependencies.
+
+rust_library {
+ name: "libp9",
+ host_supported: true,
+ crate_name: "p9",
+ srcs: ["src/lib.rs"],
+ edition: "2018",
+ rustlibs: [
+ "liblibc",
+ ],
+ proc_macros: [
+ "libwire_format_derive",
+ ],
+}
+
+rust_defaults {
+ name: "p9_defaults",
+ crate_name: "p9",
+ srcs: ["src/lib.rs"],
+ test_suites: ["general-tests"],
+ auto_gen_config: true,
+ edition: "2018",
+ rustlibs: [
+ "liblibc",
+ ],
+ proc_macros: [
+ "libwire_format_derive",
+ ],
+}
+
+rust_test_host {
+ name: "p9_host_test_src_lib",
+ defaults: ["p9_defaults"],
+}
+
+rust_test {
+ name: "p9_device_test_src_lib",
+ defaults: ["p9_defaults"],
+}
+
+// dependent_library ["feature_list"]
+// libc-0.2.79 "default,std"
+// proc-macro2-1.0.24 "default,proc-macro"
+// quote-1.0.7 "default,proc-macro"
+// syn-1.0.45 "clone-impls,default,derive,parsing,printing,proc-macro,quote"
+// unicode-xid-0.2.1 "default"
diff --git a/TEST_MAPPING b/TEST_MAPPING
new file mode 100644
index 0000000..656256d
--- /dev/null
+++ b/TEST_MAPPING
@@ -0,0 +1,13 @@
+// Generated by cargo2android.py for tests in Android.bp
+{
+ "presubmit": [
+ {
+ "name": "p9_host_test_src_lib",
+ "host": true
+// Presubmit tries to run x86, but we only support 64-bit builds.
+// },
+// {
+// "name": "p9_device_test_src_lib"
+ }
+ ]
+}
diff --git a/src/server/mod.rs b/src/server/mod.rs
index c25cb3b..6a4a5c1 100644
--- a/src/server/mod.rs
+++ b/src/server/mod.rs
@@ -8,7 +8,7 @@ use std::ffi::CString;
use std::fs;
use std::io::{self, Cursor, Read, Write};
use std::mem;
-use std::os::linux::fs::MetadataExt;
+use std::os::unix::fs::MetadataExt;
use std::os::unix::fs::{DirBuilderExt, FileExt, OpenOptionsExt};
use std::os::unix::io::AsRawFd;
use std::path::{Component, Path, PathBuf};
@@ -126,8 +126,8 @@ fn metadata_to_qid(metadata: &fs::Metadata) -> Qid {
Qid {
ty,
// TODO: deal with the 2038 problem before 2038
- version: metadata.st_mtime() as u32,
- path: metadata.st_ino(),
+ version: metadata.mtime() as u32,
+ path: metadata.ino(),
}
}
@@ -634,20 +634,20 @@ impl Server {
Ok(Rgetattr {
valid: P9_GETATTR_BASIC,
qid: metadata_to_qid(&fid.metadata),
- mode: fid.metadata.st_mode(),
- uid: map_id_from_host(&self.uid_map, fid.metadata.st_uid()),
- gid: map_id_from_host(&self.gid_map, fid.metadata.st_gid()),
- nlink: fid.metadata.st_nlink(),
- rdev: fid.metadata.st_rdev(),
- size: fid.metadata.st_size(),
- blksize: fid.metadata.st_blksize(),
- blocks: fid.metadata.st_blocks(),
- atime_sec: fid.metadata.st_atime() as u64,
- atime_nsec: fid.metadata.st_atime_nsec() as u64,
- mtime_sec: fid.metadata.st_mtime() as u64,
- mtime_nsec: fid.metadata.st_mtime_nsec() as u64,
- ctime_sec: fid.metadata.st_ctime() as u64,
- ctime_nsec: fid.metadata.st_ctime_nsec() as u64,
+ mode: fid.metadata.mode(),
+ uid: map_id_from_host(&self.uid_map, fid.metadata.uid()),
+ gid: map_id_from_host(&self.gid_map, fid.metadata.gid()),
+ nlink: fid.metadata.nlink(),
+ rdev: fid.metadata.rdev(),
+ size: fid.metadata.size(),
+ blksize: fid.metadata.blksize(),
+ blocks: fid.metadata.blocks(),
+ atime_sec: fid.metadata.atime() as u64,
+ atime_nsec: fid.metadata.atime_nsec() as u64,
+ mtime_sec: fid.metadata.mtime() as u64,
+ mtime_nsec: fid.metadata.mtime_nsec() as u64,
+ ctime_sec: fid.metadata.ctime() as u64,
+ ctime_nsec: fid.metadata.ctime_nsec() as u64,
btime_sec: 0,
btime_nsec: 0,
gen: 0,
diff --git a/src/server/tests.rs b/src/server/tests.rs
index fa161e9..cc000b6 100644
--- a/src/server/tests.rs
+++ b/src/server/tests.rs
@@ -12,7 +12,7 @@ use std::fs::File;
use std::io::{self, Cursor};
use std::mem;
use std::ops::Deref;
-use std::os::linux::fs::MetadataExt;
+use std::os::unix::fs::MetadataExt;
use std::os::unix::ffi::OsStringExt;
use std::path::{Path, PathBuf};
use std::u32;
@@ -112,8 +112,8 @@ fn check_qid(qid: &Qid, md: &fs::Metadata) {
panic!("unknown file type: {:?}", md.file_type());
};
assert_eq!(qid.ty, ty);
- assert_eq!(qid.version, md.st_mtime() as u32);
- assert_eq!(qid.path, md.st_ino());
+ assert_eq!(qid.version, md.mtime() as u32);
+ assert_eq!(qid.path, md.ino());
}
fn check_attr(server: &mut Server, fid: u32, md: &fs::Metadata) {
@@ -135,20 +135,20 @@ fn check_attr(server: &mut Server, fid: u32, md: &fs::Metadata) {
};
assert_eq!(rgetattr.valid, P9_GETATTR_BASIC);
assert_eq!(rgetattr.qid.ty, ty);
- assert_eq!(rgetattr.qid.version, md.st_mtime() as u32);
- assert_eq!(rgetattr.qid.path, md.st_ino());
- assert_eq!(rgetattr.mode, md.st_mode());
- assert_eq!(rgetattr.uid, md.st_uid());
- assert_eq!(rgetattr.gid, md.st_gid());
- assert_eq!(rgetattr.nlink, md.st_nlink());
- assert_eq!(rgetattr.rdev, md.st_rdev());
- assert_eq!(rgetattr.size, md.st_size());
- assert_eq!(rgetattr.atime_sec, md.st_atime() as u64);
- assert_eq!(rgetattr.atime_nsec, md.st_atime_nsec() as u64);
- assert_eq!(rgetattr.mtime_sec, md.st_mtime() as u64);
- assert_eq!(rgetattr.mtime_nsec, md.st_mtime_nsec() as u64);
- assert_eq!(rgetattr.ctime_sec, md.st_ctime() as u64);
- assert_eq!(rgetattr.ctime_nsec, md.st_ctime_nsec() as u64);
+ assert_eq!(rgetattr.qid.version, md.mtime() as u32);
+ assert_eq!(rgetattr.qid.path, md.ino());
+ assert_eq!(rgetattr.mode, md.mode());
+ assert_eq!(rgetattr.uid, md.uid());
+ assert_eq!(rgetattr.gid, md.gid());
+ assert_eq!(rgetattr.nlink, md.nlink());
+ assert_eq!(rgetattr.rdev, md.rdev());
+ assert_eq!(rgetattr.size, md.size());
+ assert_eq!(rgetattr.atime_sec, md.atime() as u64);
+ assert_eq!(rgetattr.atime_nsec, md.atime_nsec() as u64);
+ assert_eq!(rgetattr.mtime_sec, md.mtime() as u64);
+ assert_eq!(rgetattr.mtime_nsec, md.mtime_nsec() as u64);
+ assert_eq!(rgetattr.ctime_sec, md.ctime() as u64);
+ assert_eq!(rgetattr.ctime_nsec, md.ctime_nsec() as u64);
assert_eq!(rgetattr.btime_sec, 0);
assert_eq!(rgetattr.btime_nsec, 0);
assert_eq!(rgetattr.gen, 0);
@@ -588,7 +588,7 @@ fn set_len() {
})
.expect("failed to run set length of file");
- assert_eq!(md.st_size(), len);
+ assert_eq!(md.size(), len);
}
#[test]
@@ -637,8 +637,8 @@ fn set_mtime() {
})
.expect("failed to set mtime");
- assert_eq!(md.st_mtime() as u64, secs);
- assert_eq!(md.st_mtime_nsec() as u64, nanos);
+ assert_eq!(md.mtime() as u64, secs);
+ assert_eq!(md.mtime_nsec() as u64, nanos);
}
#[test]
@@ -651,8 +651,8 @@ fn set_atime() {
})
.expect("failed to set atime");
- assert_eq!(md.st_atime() as u64, secs);
- assert_eq!(md.st_atime_nsec() as u64, nanos);
+ assert_eq!(md.atime() as u64, secs);
+ assert_eq!(md.atime_nsec() as u64, nanos);
}
#[test]
diff --git a/wire_format_derive/Android.bp b/wire_format_derive/Android.bp
new file mode 100644
index 0000000..1604435
--- /dev/null
+++ b/wire_format_derive/Android.bp
@@ -0,0 +1,13 @@
+// This file is generated by cargo2android.py --run --device --tests --dependencies.
+
+rust_proc_macro {
+ name: "libwire_format_derive",
+ crate_name: "wire_format_derive",
+ srcs: ["wire_format_derive.rs"],
+ edition: "2015",
+ rustlibs: [
+ "libproc_macro2",
+ "libquote",
+ "libsyn",
+ ],
+}