Merge "Snap for 5925869 from 9841f55a7efc3fcda5a0a9599c5049dae7a8ec22 to sdk-release" into sdk-release
diff --git a/UPDATE-SOURCE.bash b/UPDATE-SOURCE.bash
new file mode 100755
index 0000000..408ce07
--- /dev/null
+++ b/UPDATE-SOURCE.bash
@@ -0,0 +1,102 @@
+#!/bin/bash
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# This script updates SQLite source files with a SQLite tarball.
+#
+# Usage: UPDATE-SOURCE.bash SQLITE-SOURCE.tgz
+#
+# This script must be executed in $ANDROID_BUILD_TOP/external/sqlite/
+#
+
+set -e
+
+script_name="$(basename "$0")"
+
+source_tgz="$1"
+source_ext_dir="$1.extracted"
+
+die() {
+    echo "$script_name: $*"
+    exit 1
+}
+
+echo_and_exec() {
+    echo "  Running: $@"
+    "$@"
+}
+
+# Make sure the source tgz file exists.
+pwd="$(pwd)"
+if [[ ! "$pwd" =~ .*/external/sqlite/? ]] ; then
+    die 'Execute this script in $ANDROID_BUILD_TOP/external/sqlite/'
+fi
+
+# Make sure the source tgz file exists.
+
+if [[ ! -f "$source_tgz" ]] ; then
+    die " Missing or invalid argument.
+
+  Usage: $script_name SQLITE-SOURCE_TGZ
+"
+fi
+
+
+echo
+echo "# Extracting the source tgz..."
+echo_and_exec rm -fr "$source_ext_dir"
+echo_and_exec mkdir -p "$source_ext_dir"
+echo_and_exec tar xvf "$source_tgz" -C "$source_ext_dir" --strip-components=1
+
+echo
+echo "# Making file sqlite3.c in $source_ext_dir ..."
+(
+    cd "$source_ext_dir"
+    echo_and_exec ./configure
+    echo_and_exec make -j 4 sqlite3.c
+)
+
+echo
+echo "# Copying the source files ..."
+for to in dist/orig/ dist/ ; do
+    echo_and_exec cp "$source_ext_dir/"{shell.c,sqlite3.c,sqlite3.h,sqlite3ext.h} "$to"
+done
+
+echo
+echo "# Applying Android.patch ..."
+(
+    cd dist
+    echo_and_exec patch -i Android.patch
+)
+
+echo
+echo "# Regenerating Android.patch ..."
+(
+    cd dist
+    echo_and_exec bash -c '(for x in orig/*; do diff -u -d $x ${x#orig/}; done) > Android.patch'
+)
+
+cat <<EOF
+
+=======================================================
+
+  Finished successfully!
+
+  Make sure to update README.version
+
+=======================================================
+
+EOF
+
diff --git a/android/Android.bp b/android/Android.bp
index 70545a1..0cccef1 100644
--- a/android/Android.bp
+++ b/android/Android.bp
@@ -42,6 +42,8 @@
         "-Werror",
     ],
     srcs: [
+        "OldPhoneNumberUtils.cpp",
+        "OldPhoneNumberUtilsTest.cpp",
         "PhoneNumberUtils.cpp",
         "PhoneNumberUtilsTest.cpp",
     ],
diff --git a/android/OldPhoneNumberUtilsTest.cpp b/android/OldPhoneNumberUtilsTest.cpp
index 777ae71..fdd4135 100644
--- a/android/OldPhoneNumberUtilsTest.cpp
+++ b/android/OldPhoneNumberUtilsTest.cpp
@@ -33,32 +33,32 @@
 using namespace android;
 
 
-TEST(PhoneNumberUtils, compareLooseNullOrEmpty) {
+TEST(OldPhoneNumberUtils, compareLooseNullOrEmpty) {
     EXPECT_FALSE(phone_number_compare_loose(NULL, NULL));
     EXPECT_FALSE(phone_number_compare_loose("", NULL));
     EXPECT_FALSE(phone_number_compare_loose(NULL, ""));
     EXPECT_FALSE(phone_number_compare_loose("", ""));
 }
 
-TEST(PhoneNumberUtils, compareLooseDigitsSame) {
+TEST(OldPhoneNumberUtils, compareLooseDigitsSame) {
     EXPECT_TRUE(phone_number_compare_loose("999", "999"));
     EXPECT_TRUE(phone_number_compare_loose("119", "119"));
 }
 
-TEST(PhoneNumberUtils, compareLooseDigitsDifferent) {
+TEST(OldPhoneNumberUtils, compareLooseDigitsDifferent) {
     EXPECT_FALSE(phone_number_compare_loose("123456789", "923456789"));
     EXPECT_FALSE(phone_number_compare_loose("123456789", "123456781"));
     EXPECT_FALSE(phone_number_compare_loose("123456789", "1234567890"));
     EXPECT_TRUE(phone_number_compare_loose("123456789", "0123456789"));
 }
 
-TEST(PhoneNumberUtils, compareLooseGoogle) {
+TEST(OldPhoneNumberUtils, compareLooseGoogle) {
     EXPECT_TRUE(phone_number_compare_loose("650-253-0000", "6502530000"));
     EXPECT_TRUE(phone_number_compare_loose("650-253-0000", "650 253 0000"));
     EXPECT_TRUE(phone_number_compare_loose("650 253 0000", "6502530000"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkPrefixUs) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkPrefixUs) {
     // trunk (NDD) prefix must be properly handled in US
     EXPECT_TRUE(phone_number_compare_loose("650-253-0000", "1-650-253-0000"));
     EXPECT_TRUE(phone_number_compare_loose("650-253-0000", "   1-650-253-0000"));
@@ -72,11 +72,11 @@
     EXPECT_TRUE(phone_number_compare_loose("0111 650-253-0000", "6502530000"));
 }
 
-TEST(PhoneNumberUtils, compareLooseDifferentCountryCode) {
+TEST(OldPhoneNumberUtils, compareLooseDifferentCountryCode) {
     EXPECT_FALSE(phone_number_compare_loose("+19012345678", "+819012345678"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkJapan) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkJapan) {
     EXPECT_TRUE(phone_number_compare_loose("+31771234567", "0771234567"));
     EXPECT_TRUE(phone_number_compare_loose("090-1234-5678", "+819012345678"));
     EXPECT_TRUE(phone_number_compare_loose("090(1234)5678", "+819012345678"));
@@ -87,24 +87,24 @@
     EXPECT_TRUE(phone_number_compare_loose("+81-90-1234-5678", "090-1234-5678"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkRussia) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkRussia) {
     EXPECT_TRUE(phone_number_compare_loose("+79161234567", "89161234567"));
 
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkFrance) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkFrance) {
     EXPECT_TRUE(phone_number_compare_loose("+33123456789", "0123456789"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkHungary) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkHungary) {
     EXPECT_TRUE(phone_number_compare_loose("+36 1 234 5678", "06 1234-5678"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkMexico) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkMexico) {
     EXPECT_TRUE(phone_number_compare_loose("+52 55 1234 5678", "01 55 1234 5678"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkMongolia) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkMongolia) {
     EXPECT_TRUE(phone_number_compare_loose("+976 1 123 4567", "01 1 23 4567"));
     EXPECT_TRUE(phone_number_compare_loose("+976 2 234 5678", "02 2 34 5678"));
 }
@@ -113,12 +113,12 @@
     EXPECT_TRUE(phone_number_compare_loose("+31771234567", "0771234567"));
 }
 
-TEST(PhoneNumberUtils, compareLooseInternationalJapan) {
+TEST(OldPhoneNumberUtils, compareLooseInternationalJapan) {
     EXPECT_FALSE(phone_number_compare_loose("+818012345678", "+819012345678"));
     EXPECT_TRUE(phone_number_compare_loose("+819012345678", "+819012345678"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTrunkIgnoreJapan) {
+TEST(OldPhoneNumberUtils, compareLooseTrunkIgnoreJapan) {
     // Trunk prefix must not be ignored in Japan
     EXPECT_TRUE(phone_number_compare_loose("090-1234-5678", "90-1234-5678"));
     EXPECT_FALSE(phone_number_compare_loose("090-1234-5678", "080-1234-5678"));
@@ -128,17 +128,17 @@
     EXPECT_FALSE(phone_number_compare_loose("+81-90-1234-5678", "+81-090-1234-5678"));
 }
 
-TEST(PhoneNumberUtils, compareLooseInternationalNational) {
+TEST(OldPhoneNumberUtils, compareLooseInternationalNational) {
     EXPECT_TRUE(phone_number_compare_loose("+593(800)123-1234", "8001231234"));
 }
 
-TEST(PhoneNumberUtils, compareLooseTwoContinuousZeros) {
+TEST(OldPhoneNumberUtils, compareLooseTwoContinuousZeros) {
     // Two continuous 0 at the begining of the phone string should be
     // treated as trunk prefix for caller id purposes.
     EXPECT_TRUE(phone_number_compare_loose("008001231234", "8001231234"));
 }
 
-TEST(PhoneNumberUtils, compareLooseCallerIdThailandUs) {
+TEST(OldPhoneNumberUtils, compareLooseCallerIdThailandUs) {
     // Test broken caller ID seen on call from Thailand to the US
     EXPECT_TRUE(phone_number_compare_loose("+66811234567", "166811234567"));
     // Confirm that the bug found before does not re-appear.
@@ -148,7 +148,7 @@
     EXPECT_TRUE(phone_number_compare_loose("+44 207 792 3490", "00 207 792 3490"));
 }
 
-TEST(PhoneNumberUtils, compareLooseNamp1661) {
+TEST(OldPhoneNumberUtils, compareLooseNamp1661) {
     // This is not related to Thailand case. NAMP "1" + region code "661".
     EXPECT_TRUE(phone_number_compare_loose("16610001234", "6610001234"));
 }
@@ -160,7 +160,7 @@
     EXPECT_TRUE(phone_number_compare_loose("abcd", "bcde"));
 }
 
-TEST(PhoneNumberUtils, compareLooseAlphaNumericDifferent) {
+TEST(OldPhoneNumberUtils, compareLooseAlphaNumericDifferent) {
     EXPECT_FALSE(phone_number_compare_loose("1-800-flowers", "800-flowers"));
     // TODO: "flowers" and "adcdefg" should not match
     //EXPECT_FALSE(phone_number_compare_loose("1-800-flowers", "1-800-abcdefg"));
@@ -168,11 +168,11 @@
 
 // TODO: we currently do not support this comparison. It maybe nice to support this
 // TODO: in the future.
-//TEST(PhoneNumberUtils, compareLooseLettersToDigits) {
+//TEST(OldPhoneNumberUtils, compareLooseLettersToDigits) {
 //  EXPECT_TRUE(phone_number_compare_loose("1-800-flowers", "1-800-356-9377"));
 //}
 
-TEST(PhoneNumberUtils, compareLooseWrongPrefix) {
+TEST(OldPhoneNumberUtils, compareLooseWrongPrefix) {
     // Japan
     EXPECT_FALSE(phone_number_compare_loose("290-1234-5678", "+819012345678"));
     EXPECT_FALSE(phone_number_compare_loose("+819012345678", "290-1234-5678"));
diff --git a/android/PhoneNumberUtilsTest.cpp b/android/PhoneNumberUtilsTest.cpp
index ce90c0a..8e4692c 100644
--- a/android/PhoneNumberUtilsTest.cpp
+++ b/android/PhoneNumberUtilsTest.cpp
@@ -194,7 +194,7 @@
     EXPECT_FALSE(phone_number_compare_strict("+14504503605", "5504503605"));
 }
 
-TEST(PhoneNumberUtils, phone_number_stripped_reversed_inter) {
+TEST(PhoneNumberUtils, compareStrict_phone_number_stripped_reversed_inter) {
     char out[6];
     int outlen;
 
@@ -220,3 +220,9 @@
     // Ignoring non-dialable
     ASSERT_STRIPPED_REVERSE("1A2 3?4", "4321");
 }
+
+TEST(PhoneNumberUtils, compareStrictRussianNumbers) {
+    EXPECT_FALSE(phone_number_compare_strict("84951234567", "+84951234567"));
+
+    EXPECT_FALSE(phone_number_compare_strict("88001234567", "+88001234567"));
+}
diff --git a/dist/Android.bp b/dist/Android.bp
index 414c84d..f7e43f3 100644
--- a/dist/Android.bp
+++ b/dist/Android.bp
@@ -40,10 +40,6 @@
         "-DBIONIC_IOCTL_NO_SIGNEDNESS_OVERLOAD",
         "-Wno-unused-parameter",
         "-Werror",
-
-        // Turn off the new pass manager due to miscompile.
-        // http://b/131854833
-        "-fno-experimental-new-pass-manager",
     ],
 
     target: {