From c66cc18cf8c724425086f2e105eee9ad010cb7b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= Date: Mon, 21 Jun 2021 21:31:32 +0200 Subject: Upgrade to 0.5.0 Change-Id: I2fb14867fe1f9993a7f5ba475b8b3a84002a4cb3 --- .cargo_vcs_info.json | 2 +- Android.bp | 12 ++++++++--- Cargo.toml | 4 ++-- Cargo.toml.orig | 4 ++-- METADATA | 10 ++++----- TEST_MAPPING | 8 +++++++- src/expr.rs | 57 ++++++++++++++++++++-------------------------------- src/lib.rs | 11 +++++++++- src/literal.rs | 16 +++++++-------- 9 files changed, 66 insertions(+), 58 deletions(-) diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json index 2d990ac..8481d95 100644 --- a/.cargo_vcs_info.json +++ b/.cargo_vcs_info.json @@ -1,5 +1,5 @@ { "git": { - "sha1": "2979eee12f92d1903a53f820664c65735b010e0e" + "sha1": "6a43efb32cf14b8dc4cd294429d3de259d37e279" } } diff --git a/Android.bp b/Android.bp index 7d07606..95aa797 100644 --- a/Android.bp +++ b/Android.bp @@ -1,4 +1,5 @@ // This file is generated by cargo2android.py --run --dependencies --device. +// Do not modify this file as changes will be overridden on upgrade. package { default_applicable_licenses: ["external_rust_crates_cexpr_license"], @@ -48,6 +49,11 @@ rust_library { } // dependent_library ["feature_list"] -// memchr-2.3.3 "std,use_std" -// nom-5.1.2 "alloc,std" -// version_check-0.9.2 +// bitvec-0.19.5 "alloc,std" +// funty-1.1.0 +// memchr-2.3.4 "std,use_std" +// nom-6.2.0 "alloc,bitvec,funty,std" +// radium-0.5.3 +// tap-1.0.1 +// version_check-0.9.3 +// wyz-0.2.0 "alloc" diff --git a/Cargo.toml b/Cargo.toml index 9ae350d..8f6dcc2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ [package] edition = "2018" name = "cexpr" -version = "0.4.0" +version = "0.5.0" authors = ["Jethro Beekman "] description = "A C expression parser and evaluator" documentation = "https://docs.rs/cexpr/" @@ -21,7 +21,7 @@ keywords = ["C", "expression", "parser"] license = "Apache-2.0/MIT" repository = "https://github.com/jethrogb/rust-cexpr" [dependencies.nom] -version = "5" +version = "6" features = ["std"] default-features = false [dev-dependencies.clang-sys] diff --git a/Cargo.toml.orig b/Cargo.toml.orig index d6ab0de..acbe572 100644 --- a/Cargo.toml.orig +++ b/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "cexpr" -version = "0.4.0" +version = "0.5.0" edition = "2018" authors = ["Jethro Beekman "] license = "Apache-2.0/MIT" @@ -13,7 +13,7 @@ keywords = ["C","expression","parser"] travis-ci = { repository = "jethrogb/rust-cexpr" } [dependencies] -nom = { version = "5", default-features = false, features = ["std"] } +nom = { version = "6", default-features = false, features = ["std"] } [dev-dependencies] clang-sys = ">= 0.13.0, < 0.29.0" diff --git a/METADATA b/METADATA index 8f79fa2..ea007fa 100644 --- a/METADATA +++ b/METADATA @@ -7,13 +7,13 @@ third_party { } url { type: ARCHIVE - value: "https://static.crates.io/crates/cexpr/cexpr-0.4.0.crate" + value: "https://static.crates.io/crates/cexpr/cexpr-0.5.0.crate" } - version: "0.4.0" + version: "0.5.0" license_type: NOTICE last_upgrade_date { - year: 2020 - month: 3 - day: 31 + year: 2021 + month: 6 + day: 21 } } diff --git a/TEST_MAPPING b/TEST_MAPPING index 6716814..a731acb 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -1,8 +1,14 @@ -// Generated by cargo2android.py for tests in Android.bp +// Generated by update_crate_tests.py for tests that depend on this crate. { "presubmit": [ + { + "name": "keystore2_test" + }, { "name": "libsqlite3-sys_device_test_src_lib" + }, + { + "name": "vpnprofilestore_test" } ] } diff --git a/src/expr.rs b/src/expr.rs index b1fbfb2..5dce3c7 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -31,7 +31,7 @@ use crate::token::{Kind as TokenKind, Token}; use crate::ToCexprResult; use nom::branch::alt; use nom::combinator::{complete, map, map_opt}; -use nom::multi::{fold_many0, many0, separated_list}; +use nom::multi::{fold_many0, many0, separated_list0}; use nom::sequence::{delimited, pair, preceded}; use nom::*; @@ -100,7 +100,7 @@ macro_rules! exact_token ( ($k:ident, $c:expr) => ({ move |input: &[Token]| { if input.is_empty() { - let res: CResult<'_, &[u8]> = Err(crate::nom::Err::Incomplete(Needed::Size($c.len()))); + let res: CResult<'_, &[u8]> = Err(crate::nom::Err::Incomplete(Needed::new($c.len()))); res } else { if input[0].kind==TokenKind::$k && &input[0].raw[..]==$c { @@ -113,29 +113,16 @@ macro_rules! exact_token ( }); ); -macro_rules! typed_token ( - ($k:ident) => ({ - move |input: &[Token]| { - if input.is_empty() { - let res: CResult<'_, &[u8]> = Err(nom::Err::Incomplete(Needed::Size(1))); - res - } else { - if input[0].kind==TokenKind::$k { - Ok((&input[1..], &input[0].raw[..])) - } else { - Err(crate::nom::Err::Error((input, crate::ErrorKind::TypedToken(TokenKind::$k)).into())) - } - } - } - }); -); - -#[allow(dead_code)] -fn any_token(input: &[Token]) -> CResult<'_, &Token> { +fn identifier_token(input: &[Token]) -> CResult<'_, &[u8]> { if input.is_empty() { - Err(crate::nom::Err::Incomplete(Needed::Size(1))) + let res: CResult<'_, &[u8]> = Err(nom::Err::Incomplete(Needed::new(1))); + res } else { - Ok((&input[1..], &input[0])) + if input[0].kind == TokenKind::Identifier { + Ok((&input[1..], &input[0].raw[..])) + } else { + Err(crate::nom::Err::Error((input, crate::ErrorKind::TypedToken(TokenKind::Identifier)).into())) + } } } @@ -151,7 +138,7 @@ fn one_of_punctuation(c: &'static [&'static str]) -> impl Fn(&[Token]) -> CResul .map(|opt| opt.len()) .min() .expect("at least one option"); - Err(crate::nom::Err::Incomplete(Needed::Size(min))) + Err(crate::nom::Err::Incomplete(Needed::new(min))) } else if input[0].kind == TokenKind::Punctuation && c.iter().any(|opt| opt.as_bytes() == &input[0].raw[..]) { @@ -295,9 +282,9 @@ fn unary_op(input: (&[u8], EvalResult)) -> Option { fn numeric, F>( f: F, -) -> impl Fn(I) -> nom::IResult +) -> impl FnMut(I) -> nom::IResult where - F: Fn(I) -> nom::IResult, + F: FnMut(I) -> nom::IResult, { nom::combinator::map_opt(f, EvalResult::as_numeric) } @@ -419,7 +406,7 @@ impl<'a> PRef<'a> { impl<'a> PRef<'a> { fn identifier(self, input: &'_ [Token]) -> CResult<'_, EvalResult> { match input.split_first() { - None => Err(Err::Incomplete(Needed::Size(1))), + None => Err(Err::Incomplete(Needed::new(1))), Some(( &Token { kind: TokenKind::Identifier, @@ -443,7 +430,7 @@ impl<'a> PRef<'a> { fn literal(self, input: &'_ [Token]) -> CResult<'_, EvalResult> { match input.split_first() { - None => Err(Err::Incomplete(Needed::Size(1))), + None => Err(Err::Incomplete(Needed::new(1))), Some(( &Token { kind: TokenKind::Literal, @@ -496,7 +483,7 @@ impl<'a> PRef<'a> { } fn macro_definition(self, input: &'_ [Token]) -> CResult<'_, (&'_ [u8], EvalResult)> { - pair(typed_token!(Identifier), |i| self.expr(i))(input) + pair(identifier_token, |i| self.expr(i))(input) } } @@ -519,7 +506,7 @@ impl<'ident> IdentifierParser<'ident> { IdentifierParser { identifiers } } - /// Parse and evalute an expression of a list of tokens. + /// Parse and evaluate an expression of a list of tokens. /// /// Returns an error if the input is not a valid expression or if the token /// stream contains comments, keywords or unknown identifiers. @@ -527,7 +514,7 @@ impl<'ident> IdentifierParser<'ident> { self.as_ref().expr(input) } - /// Parse and evaluate a macro definition from of a list of tokens. + /// Parse and evaluate a macro definition from a list of tokens. /// /// Returns the identifier for the macro and its replacement evaluated as an /// expression. The input should not include `#define`. @@ -552,7 +539,7 @@ impl<'ident> IdentifierParser<'ident> { } } -/// Parse and evalute an expression of a list of tokens. +/// Parse and evaluate an expression of a list of tokens. /// /// Returns an error if the input is not a valid expression or if the token /// stream contains comments, keywords or identifiers. @@ -560,7 +547,7 @@ pub fn expr(input: &[Token]) -> CResult<'_, EvalResult> { IdentifierParser::new(&HashMap::new()).expr(input) } -/// Parse and evaluate a macro definition from of a list of tokens. +/// Parse and evaluate a macro definition from a list of tokens. /// /// Returns the identifier for the macro and its replacement evaluated as an /// expression. The input should not include `#define`. @@ -613,10 +600,10 @@ pub fn macro_definition(input: &[Token]) -> CResult<'_, (&'_ [u8], EvalResult)> /// ``` pub fn fn_macro_declaration(input: &[Token]) -> CResult<'_, (&[u8], Vec<&[u8]>)> { pair( - typed_token!(Identifier), + identifier_token, delimited( p("("), - separated_list(p(","), typed_token!(Identifier)), + separated_list0(p(","), identifier_token), p(")"), ), )(input) diff --git a/src/lib.rs b/src/lib.rs index 84e1e83..5170f97 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,7 +19,7 @@ pub mod nom { //! nom's result types, re-exported. - pub use nom::{error::ErrorKind, Err, IResult, Needed}; + pub use nom::{error::ErrorKind, error::Error, Err, IResult, Needed}; } pub mod expr; pub mod literal; @@ -86,6 +86,15 @@ impl From<(I, ErrorKind)> for Error { } } +impl From<::nom::error::Error> for Error { + fn from(e: ::nom::error::Error) -> Self { + Self { + input: e.input, + error: e.code.into(), + } + } +} + impl ::nom::error::ParseError for Error { fn from_error_kind(input: I, kind: nom::ErrorKind) -> Self { Self { diff --git a/src/literal.rs b/src/literal.rs index 39f07be..b74699f 100644 --- a/src/literal.rs +++ b/src/literal.rs @@ -70,7 +70,7 @@ impl From for CChar { } // A non-allocating version of this would be nice... -impl Into> for CChar { +impl std::convert::Into> for CChar { fn into(self) -> Vec { match self { CChar::Char(c) => { @@ -88,12 +88,12 @@ impl Into> for CChar { } /// ensures the child parser consumes the whole input -pub fn full, F>( +pub fn full( f: F, -) -> impl Fn(I) -> nom::IResult +) -> impl Fn(I) -> nom::IResult where I: nom::InputLength, - F: Fn(I) -> nom::IResult, + F: Fn(I) -> nom::IResult, { move |input| { let res = f(input); @@ -102,7 +102,7 @@ where if i.input_len() == 0 { Ok((i, o)) } else { - Err(nom::Err::Error((i, nom::error::ErrorKind::Complete.into()))) + Err(nom::Err::Error(nom::error::Error::new(i, nom::error::ErrorKind::Complete))) } } r => r, @@ -119,8 +119,8 @@ macro_rules! byte { fn parser(i: &[u8]) -> crate::nom::IResult<&[u8], u8> { match i.split_first() { $(Some((&c @ $p,rest)))|* => Ok((rest,c)), - Some(_) => Err(nom::Err::Error((i, nom::error::ErrorKind::OneOf))), - None => Err(nom::Err::Incomplete(Needed::Size(1))), + Some(_) => Err(nom::Err::Error(nom::error::Error::new(i, nom::error::ErrorKind::OneOf))), + None => Err(nom::Err::Incomplete(Needed::new(1))), } } @@ -272,7 +272,7 @@ fn c_int(i: &[u8]) -> nom::IResult<&[u8], i64> { c_int_radix(v, 8) }), map_opt(many1(complete(decimal)), |v| c_int_radix(v, 10)), - |input| Err(crate::nom::Err::Error((input, crate::nom::ErrorKind::Fix))), + |input| Err(crate::nom::Err::Error(nom::error::Error::new(input, crate::nom::ErrorKind::Fix))), )), opt(take_ul), ), -- cgit v1.2.3 From eeb6be2901ea7ef4e6887aba01b122aa32f2a2c9 Mon Sep 17 00:00:00 2001 From: easoncylee Date: Fri, 2 Jul 2021 11:37:44 +0800 Subject: Update vpnprofilestore_test to legacykeystore_test in TEST_MAPPING The test had been changed to legacykeystore_test from ag/14968529 Bug: 192796637 Test: presubmit Change-Id: Ib06ba7205eb6142484569a58ff111ad914c625f9 --- TEST_MAPPING | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TEST_MAPPING b/TEST_MAPPING index a731acb..2a07b0f 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -8,7 +8,7 @@ "name": "libsqlite3-sys_device_test_src_lib" }, { - "name": "vpnprofilestore_test" + "name": "legacykeystore_test" } ] } -- cgit v1.2.3 From 1e67d003f87c053c9274c0c5828c9452d639550e Mon Sep 17 00:00:00 2001 From: Joel Galenson Date: Mon, 23 Aug 2021 09:06:27 -0700 Subject: Update TEST_MAPPING Test: None Change-Id: I19e4cb0920ac5b88a73bd6cfc840066ea6966990 --- TEST_MAPPING | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TEST_MAPPING b/TEST_MAPPING index 2a07b0f..d624eef 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -5,10 +5,10 @@ "name": "keystore2_test" }, { - "name": "libsqlite3-sys_device_test_src_lib" + "name": "legacykeystore_test" }, { - "name": "legacykeystore_test" + "name": "libsqlite3-sys_device_test_src_lib" } ] } -- cgit v1.2.3 From dc2e95e11855d2c179c345747c7cfde1571bc2dc Mon Sep 17 00:00:00 2001 From: Joel Galenson Date: Mon, 30 Aug 2021 09:12:28 -0700 Subject: Update TEST_MAPPING Test: None Change-Id: I4c7fdf2b662501d050b68bd3527898cc05d4d82a --- TEST_MAPPING | 3 +++ 1 file changed, 3 insertions(+) diff --git a/TEST_MAPPING b/TEST_MAPPING index d624eef..d87563d 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -9,6 +9,9 @@ }, { "name": "libsqlite3-sys_device_test_src_lib" + }, + { + "name": "libsqlite3_bindgen_test" } ] } -- cgit v1.2.3 From 139ce9b88f28c29d3612207d5263a2e226950002 Mon Sep 17 00:00:00 2001 From: Joel Galenson Date: Wed, 29 Sep 2021 13:44:14 -0700 Subject: Upgrade to nom-7. This is upstream at https://github.com/jethrogb/rust-cexpr/pull/31. Test: Build Test: cargo test Change-Id: Id88bceef543821aafd855fee17643c782d0a5212 --- Cargo.toml | 2 +- patches/nom7.patch | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/expr.rs | 12 ++++---- src/literal.rs | 2 +- 4 files changed, 92 insertions(+), 8 deletions(-) create mode 100644 patches/nom7.patch diff --git a/Cargo.toml b/Cargo.toml index 8f6dcc2..a3067d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ keywords = ["C", "expression", "parser"] license = "Apache-2.0/MIT" repository = "https://github.com/jethrogb/rust-cexpr" [dependencies.nom] -version = "6" +version = "7" features = ["std"] default-features = false [dev-dependencies.clang-sys] diff --git a/patches/nom7.patch b/patches/nom7.patch new file mode 100644 index 0000000..5ba703d --- /dev/null +++ b/patches/nom7.patch @@ -0,0 +1,84 @@ +diff --git a/Cargo.toml b/Cargo.toml +index 8f6dcc2..a3067d0 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -21,7 +21,7 @@ keywords = ["C", "expression", "parser"] + license = "Apache-2.0/MIT" + repository = "https://github.com/jethrogb/rust-cexpr" + [dependencies.nom] +-version = "6" ++version = "7" + features = ["std"] + default-features = false + [dev-dependencies.clang-sys] +diff --git a/src/expr.rs b/src/expr.rs +index 5dce3c7..7f7e458 100644 +--- a/src/expr.rs ++++ b/src/expr.rs +@@ -308,7 +308,7 @@ impl<'a> PRef<'a> { + pair(complete(one_of_punctuation(&["*", "/", "%"][..])), |i| { + self.unary(i) + }), +- acc, ++ move || acc.clone(), + |mut acc, (op, val): (&[u8], EvalResult)| { + match op[0] as char { + '*' => acc *= &val, +@@ -327,7 +327,7 @@ impl<'a> PRef<'a> { + pair(complete(one_of_punctuation(&["+", "-"][..])), |i| { + self.mul_div_rem(i) + }), +- acc, ++ move || acc.clone(), + |mut acc, (op, val): (&[u8], EvalResult)| { + match op[0] as char { + '+' => acc += &val, +@@ -345,7 +345,7 @@ impl<'a> PRef<'a> { + pair(complete(one_of_punctuation(&["<<", ">>"][..])), |i| { + self.add_sub(i) + }), +- acc, ++ move || acc.clone(), + |mut acc, (op, val): (&[u8], EvalResult)| { + match op { + b"<<" => acc <<= &val, +@@ -361,7 +361,7 @@ impl<'a> PRef<'a> { + let (input, acc) = self.shl_shr(input)?; + numeric(fold_many0( + preceded(complete(p("&")), |i| self.shl_shr(i)), +- acc, ++ move || acc.clone(), + |mut acc, val: EvalResult| { + acc &= &val; + acc +@@ -373,7 +373,7 @@ impl<'a> PRef<'a> { + let (input, acc) = self.and(input)?; + numeric(fold_many0( + preceded(complete(p("^")), |i| self.and(i)), +- acc, ++ move || acc.clone(), + |mut acc, val: EvalResult| { + acc ^= &val; + acc +@@ -385,7 +385,7 @@ impl<'a> PRef<'a> { + let (input, acc) = self.xor(input)?; + numeric(fold_many0( + preceded(complete(p("|")), |i| self.xor(i)), +- acc, ++ move || acc.clone(), + |mut acc, val: EvalResult| { + acc |= &val; + acc +diff --git a/src/literal.rs b/src/literal.rs +index b74699f..68e85c7 100644 +--- a/src/literal.rs ++++ b/src/literal.rs +@@ -224,7 +224,7 @@ fn c_string(i: &[u8]) -> nom::IResult<&[u8], Vec> { + map(escaped_char, |c: CChar| c.into()), + map(is_not([b'\\', b'"']), |c: &[u8]| c.into()), + )), +- Vec::new(), ++ Vec::new, + |mut v: Vec, res: Vec| { + v.extend_from_slice(&res); + v diff --git a/src/expr.rs b/src/expr.rs index 5dce3c7..7f7e458 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -308,7 +308,7 @@ impl<'a> PRef<'a> { pair(complete(one_of_punctuation(&["*", "/", "%"][..])), |i| { self.unary(i) }), - acc, + move || acc.clone(), |mut acc, (op, val): (&[u8], EvalResult)| { match op[0] as char { '*' => acc *= &val, @@ -327,7 +327,7 @@ impl<'a> PRef<'a> { pair(complete(one_of_punctuation(&["+", "-"][..])), |i| { self.mul_div_rem(i) }), - acc, + move || acc.clone(), |mut acc, (op, val): (&[u8], EvalResult)| { match op[0] as char { '+' => acc += &val, @@ -345,7 +345,7 @@ impl<'a> PRef<'a> { pair(complete(one_of_punctuation(&["<<", ">>"][..])), |i| { self.add_sub(i) }), - acc, + move || acc.clone(), |mut acc, (op, val): (&[u8], EvalResult)| { match op { b"<<" => acc <<= &val, @@ -361,7 +361,7 @@ impl<'a> PRef<'a> { let (input, acc) = self.shl_shr(input)?; numeric(fold_many0( preceded(complete(p("&")), |i| self.shl_shr(i)), - acc, + move || acc.clone(), |mut acc, val: EvalResult| { acc &= &val; acc @@ -373,7 +373,7 @@ impl<'a> PRef<'a> { let (input, acc) = self.and(input)?; numeric(fold_many0( preceded(complete(p("^")), |i| self.and(i)), - acc, + move || acc.clone(), |mut acc, val: EvalResult| { acc ^= &val; acc @@ -385,7 +385,7 @@ impl<'a> PRef<'a> { let (input, acc) = self.xor(input)?; numeric(fold_many0( preceded(complete(p("|")), |i| self.xor(i)), - acc, + move || acc.clone(), |mut acc, val: EvalResult| { acc |= &val; acc diff --git a/src/literal.rs b/src/literal.rs index b74699f..68e85c7 100644 --- a/src/literal.rs +++ b/src/literal.rs @@ -224,7 +224,7 @@ fn c_string(i: &[u8]) -> nom::IResult<&[u8], Vec> { map(escaped_char, |c: CChar| c.into()), map(is_not([b'\\', b'"']), |c: &[u8]| c.into()), )), - Vec::new(), + Vec::new, |mut v: Vec, res: Vec| { v.extend_from_slice(&res); v -- cgit v1.2.3 From ffbc930d09073339c8b0fdf332fa2397e2e01b3e Mon Sep 17 00:00:00 2001 From: Joel Galenson Date: Mon, 29 Nov 2021 14:03:15 -0800 Subject: Refresh Android.bp, cargo2android.json, TEST_MAPPING. Test: None Change-Id: I27fcf9fd0b33c06bbabc070ba6ed8c28cce341ff --- Android.bp | 14 +++----------- TEST_MAPPING | 13 ++++++++++--- cargo2android.json | 4 ++++ 3 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 cargo2android.json diff --git a/Android.bp b/Android.bp index 95aa797..e0534ba 100644 --- a/Android.bp +++ b/Android.bp @@ -1,4 +1,4 @@ -// This file is generated by cargo2android.py --run --dependencies --device. +// This file is generated by cargo2android.py --config cargo2android.json. // Do not modify this file as changes will be overridden on upgrade. package { @@ -41,19 +41,11 @@ rust_library { name: "libcexpr", host_supported: true, crate_name: "cexpr", + cargo_env_compat: true, + cargo_pkg_version: "0.5.0", srcs: ["src/lib.rs"], edition: "2018", rustlibs: [ "libnom", ], } - -// dependent_library ["feature_list"] -// bitvec-0.19.5 "alloc,std" -// funty-1.1.0 -// memchr-2.3.4 "std,use_std" -// nom-6.2.0 "alloc,bitvec,funty,std" -// radium-0.5.3 -// tap-1.0.1 -// version_check-0.9.3 -// wyz-0.2.0 "alloc" diff --git a/TEST_MAPPING b/TEST_MAPPING index d87563d..e4ec3b3 100644 --- a/TEST_MAPPING +++ b/TEST_MAPPING @@ -1,17 +1,24 @@ // Generated by update_crate_tests.py for tests that depend on this crate. { + "imports": [ + { + "path": "external/rust/crates/libsqlite3-sys" + } + ], "presubmit": [ { "name": "keystore2_test" }, { "name": "legacykeystore_test" - }, + } + ], + "presubmit-rust": [ { - "name": "libsqlite3-sys_device_test_src_lib" + "name": "keystore2_test" }, { - "name": "libsqlite3_bindgen_test" + "name": "legacykeystore_test" } ] } diff --git a/cargo2android.json b/cargo2android.json new file mode 100644 index 0000000..bf78496 --- /dev/null +++ b/cargo2android.json @@ -0,0 +1,4 @@ +{ + "device": true, + "run": true +} \ No newline at end of file -- cgit v1.2.3