Enable tests

Test: atest
-------
x86_64 regex-syntax_host_test_src_lib: Passed: 321, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_src_lib: Passed: 36, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_backtrack: Passed: 831, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_backtrack_bytes: Passed: 848, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_backtrack_utf8bytes: Passed: 831, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_crates_regex: Passed: 1036, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_default: Passed: 845, Failed: 0, Ignored: 1, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_default_bytes: Passed: 852, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_nfa: Passed: 831, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_nfa_bytes: Passed: 846, Failed: 0, Ignored: 0, Assumption Failed: 0,
x86_64 regex_host_test_tests_test_nfa_utf8bytes: Passed: 831, Failed: 0, Ignored: 0, Assumption Failed: 0,

Change-Id: I46b823e39d91bc91434f3c4fb3193a52b7ec6f28
diff --git a/Android.bp b/Android.bp
index 1d38b35..60315d9 100644
--- a/Android.bp
+++ b/Android.bp
@@ -42,6 +42,8 @@
     name: "libregex",
     host_supported: true,
     crate_name: "regex",
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
     srcs: ["src/lib.rs"],
     edition: "2018",
     features: [
@@ -74,7 +76,521 @@
     ],
 }
 
-// dependent_library ["feature_list"]
-//   aho-corasick-0.7.18 "default,std"
-//   memchr-2.4.0 "default,std"
-//   regex-syntax-0.6.25 "default,unicode,unicode-age,unicode-bool,unicode-case,unicode-gencat,unicode-perl,unicode-script,unicode-segment"
+rust_defaults {
+    name: "regex_test_defaults",
+    crate_name: "regex",
+    srcs: ["src/lib.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_src_lib",
+    defaults: ["regex_test_defaults"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_src_lib",
+    defaults: ["regex_test_defaults"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_backtrack",
+    crate_name: "backtrack",
+    srcs: ["tests/test_backtrack.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_backtrack",
+    defaults: ["regex_test_defaults_backtrack"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_backtrack",
+    defaults: ["regex_test_defaults_backtrack"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_backtrack_bytes",
+    crate_name: "backtrack_bytes",
+    srcs: ["tests/test_backtrack_bytes.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_backtrack_bytes",
+    defaults: ["regex_test_defaults_backtrack_bytes"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_backtrack_bytes",
+    defaults: ["regex_test_defaults_backtrack_bytes"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_backtrack_utf8bytes",
+    crate_name: "backtrack_utf8bytes",
+    srcs: ["tests/test_backtrack_utf8bytes.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_backtrack_utf8bytes",
+    defaults: ["regex_test_defaults_backtrack_utf8bytes"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_backtrack_utf8bytes",
+    defaults: ["regex_test_defaults_backtrack_utf8bytes"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_crates_regex",
+    crate_name: "crates_regex",
+    srcs: ["tests/test_crates_regex.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_crates_regex",
+    defaults: ["regex_test_defaults_crates_regex"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_crates_regex",
+    defaults: ["regex_test_defaults_crates_regex"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_default",
+    crate_name: "default",
+    srcs: ["tests/test_default.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_default",
+    defaults: ["regex_test_defaults_default"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_default",
+    defaults: ["regex_test_defaults_default"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_default_bytes",
+    crate_name: "default_bytes",
+    srcs: ["tests/test_default_bytes.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_default_bytes",
+    defaults: ["regex_test_defaults_default_bytes"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_default_bytes",
+    defaults: ["regex_test_defaults_default_bytes"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_nfa",
+    crate_name: "nfa",
+    srcs: ["tests/test_nfa.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_nfa",
+    defaults: ["regex_test_defaults_nfa"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_nfa",
+    defaults: ["regex_test_defaults_nfa"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_nfa_bytes",
+    crate_name: "nfa_bytes",
+    srcs: ["tests/test_nfa_bytes.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_nfa_bytes",
+    defaults: ["regex_test_defaults_nfa_bytes"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_nfa_bytes",
+    defaults: ["regex_test_defaults_nfa_bytes"],
+}
+
+rust_defaults {
+    name: "regex_test_defaults_nfa_utf8bytes",
+    crate_name: "nfa_utf8bytes",
+    srcs: ["tests/test_nfa_utf8bytes.rs"],
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.5.4",
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2018",
+    features: [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    rustlibs: [
+        "libaho_corasick",
+        "liblazy_static",
+        "libmemchr",
+        "libquickcheck",
+        "librand",
+        "libregex",
+        "libregex_syntax",
+    ],
+}
+
+rust_test_host {
+    name: "regex_host_test_tests_test_nfa_utf8bytes",
+    defaults: ["regex_test_defaults_nfa_utf8bytes"],
+    test_options: {
+        unit_test: true,
+    },
+}
+
+rust_test {
+    name: "regex_device_test_tests_test_nfa_utf8bytes",
+    defaults: ["regex_test_defaults_nfa_utf8bytes"],
+}
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 9e661de..d3da861 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -23,6 +23,51 @@
       "name": "libsqlite3_bindgen_test"
     },
     {
+      "name": "once_cell_device_test_src_lib"
+    },
+    {
+      "name": "once_cell_device_test_tests_it"
+    },
+    {
+      "name": "regex_device_test_src_lib"
+    },
+    {
+      "name": "regex_device_test_tests_test_backtrack"
+    },
+    {
+      "name": "regex_device_test_tests_test_backtrack_bytes"
+    },
+    {
+      "name": "regex_device_test_tests_test_backtrack_utf8bytes"
+    },
+    {
+      "name": "regex_device_test_tests_test_crates_regex"
+    },
+    {
+      "name": "regex_device_test_tests_test_default"
+    },
+    {
+      "name": "regex_device_test_tests_test_default_bytes"
+    },
+    {
+      "name": "regex_device_test_tests_test_nfa"
+    },
+    {
+      "name": "regex_device_test_tests_test_nfa_bytes"
+    },
+    {
+      "name": "regex_device_test_tests_test_nfa_utf8bytes"
+    },
+    {
+      "name": "tinytemplate_device_test_src_lib"
+    },
+    {
+      "name": "tinyvec_device_test_tests_arrayvec"
+    },
+    {
+      "name": "tinyvec_device_test_tests_tinyvec"
+    },
+    {
       "name": "unicode-xid_device_test_src_lib"
     },
     {
diff --git a/cargo2android.json b/cargo2android.json
index 5c18d15..72ca2d4 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -5,5 +5,6 @@
   ],
   "dependencies": true,
   "device": true,
-  "run": true
+  "run": true,
+  "tests": true
 }