diff options
author | Jeff Sharkey <jsharkey@android.com> | 2018-10-01 16:24:02 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-10-01 16:24:02 +0000 |
commit | 42b4b94ebf180e866e1b640e2187eb4b51a74347 (patch) | |
tree | fe1f6af9abd1acf20b758989e3b69b5c95c59982 | |
parent | 289cf1ce14a142f49141031acf00484621d690a0 (diff) | |
parent | 725ae2bcfadd7360ef7e4ee9a682a128f4445828 (diff) | |
download | native-42b4b94ebf180e866e1b640e2187eb4b51a74347.tar.gz |
Merge "Break away from longer file extensions."
-rw-r--r-- | cmds/installd/MatchExtensionGen.h | 169 | ||||
-rw-r--r-- | cmds/installd/matchgen.py | 2 | ||||
-rw-r--r-- | cmds/installd/tests/installd_utils_test.cpp | 15 |
3 files changed, 186 insertions, 0 deletions
diff --git a/cmds/installd/MatchExtensionGen.h b/cmds/installd/MatchExtensionGen.h index fded6b7935..35c388972d 100644 --- a/cmds/installd/MatchExtensionGen.h +++ b/cmds/installd/MatchExtensionGen.h @@ -31,6 +31,7 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; case 'p': case 'P': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; @@ -41,10 +42,15 @@ int MatchExtension(const char* ext) { switch (ext[5]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; } + break; } + break; } + break; case 'a': case 'A': switch (ext[1]) { case 'a': case 'A': @@ -53,7 +59,9 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'i': case 'I': switch (ext[2]) { case 'f': case 'F': @@ -63,56 +71,73 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 'f': case 'F': switch (ext[4]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; } + break; case 'm': case 'M': switch (ext[2]) { case 'r': case 'R': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'r': case 'R': switch (ext[2]) { case 't': case 'T': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; case 'w': case 'W': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 's': case 'S': switch (ext[2]) { case 'f': case 'F': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; case 'x': case 'X': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'v': case 'V': switch (ext[2]) { case 'i': case 'I': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'w': case 'W': switch (ext[2]) { case 'b': case 'B': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; } + break; case 'b': case 'B': switch (ext[1]) { case 'm': case 'M': @@ -121,8 +146,11 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'c': case 'C': switch (ext[1]) { case 'r': case 'R': @@ -131,8 +159,11 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'd': case 'D': switch (ext[1]) { case 'i': case 'I': @@ -141,23 +172,30 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'l': case 'L': switch (ext[2]) { case '\0': return AID_MEDIA_VIDEO; } + break; case 'n': case 'N': switch (ext[2]) { case 'g': case 'G': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'v': case 'V': switch (ext[2]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'f': case 'F': switch (ext[1]) { case 'l': case 'L': @@ -168,13 +206,18 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'i': case 'I': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; } + break; case 'g': case 'G': switch (ext[1]) { case 'i': case 'I': @@ -183,15 +226,20 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 's': case 'S': switch (ext[2]) { case 'm': case 'M': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; } + break; case 'j': case 'J': switch (ext[1]) { case 'n': case 'N': @@ -200,7 +248,9 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'p': case 'P': switch (ext[2]) { case 'e': case 'E': @@ -210,13 +260,18 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'g': case 'G': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'l': case 'L': switch (ext[1]) { case 's': case 'S': @@ -225,12 +280,16 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; case 'x': case 'X': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; } + break; case 'm': case 'M': switch (ext[1]) { case '3': @@ -239,36 +298,46 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case '4': switch (ext[2]) { case 'a': case 'A': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 'v': case 'V': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'k': case 'K': switch (ext[2]) { case 'a': case 'A': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 'v': case 'V': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'n': case 'N': switch (ext[2]) { case 'g': case 'G': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'o': case 'O': switch (ext[2]) { case 'v': case 'V': @@ -280,23 +349,30 @@ int MatchExtension(const char* ext) { switch (ext[5]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; } + break; } + break; case 'p': case 'P': switch (ext[2]) { case '2': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case '3': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case '4': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; case 'e': case 'E': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; @@ -307,8 +383,11 @@ int MatchExtension(const char* ext) { switch (ext[5]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; } + break; case 'g': case 'G': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; @@ -316,16 +395,22 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; } + break; case 'x': case 'X': switch (ext[2]) { case 'u': case 'U': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; } + break; case 'n': case 'N': switch (ext[1]) { case 'e': case 'E': @@ -334,15 +419,20 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'r': case 'R': switch (ext[2]) { case 'w': case 'W': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'o': case 'O': switch (ext[1]) { case 'g': case 'G': @@ -351,19 +441,25 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 'g': case 'G': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'r': case 'R': switch (ext[2]) { case 'f': case 'F': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'p': case 'P': switch (ext[1]) { case 'b': case 'B': @@ -372,68 +468,88 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'c': case 'C': switch (ext[2]) { case 'x': case 'X': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'e': case 'E': switch (ext[2]) { case 'f': case 'F': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'g': case 'G': switch (ext[2]) { case 'm': case 'M': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'l': case 'L': switch (ext[2]) { case 's': case 'S': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'n': case 'N': switch (ext[2]) { case 'g': case 'G': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; case 'm': case 'M': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'p': case 'P': switch (ext[2]) { case 'm': case 'M': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 's': case 'S': switch (ext[2]) { case 'd': case 'D': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'q': case 'Q': switch (ext[1]) { case 't': case 'T': switch (ext[2]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'r': case 'R': switch (ext[1]) { case 'a': case 'A': @@ -443,30 +559,39 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 's': case 'S': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'g': case 'G': switch (ext[2]) { case 'b': case 'B': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'm': case 'M': switch (ext[2]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 'w': case 'W': switch (ext[2]) { case '2': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 's': case 'S': switch (ext[1]) { case 'd': case 'D': @@ -475,21 +600,27 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'n': case 'N': switch (ext[2]) { case 'd': case 'D': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'r': case 'R': switch (ext[2]) { case 'w': case 'W': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'v': case 'V': switch (ext[2]) { case 'g': case 'G': @@ -499,9 +630,13 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; } + break; case 't': case 'T': switch (ext[1]) { case 'i': case 'I': @@ -513,13 +648,18 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 's': case 'S': switch (ext[2]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'v': case 'V': switch (ext[1]) { case 'o': case 'O': @@ -528,8 +668,11 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; } + break; case 'w': case 'W': switch (ext[1]) { case 'a': case 'A': @@ -538,11 +681,14 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 'x': case 'X': switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; } + break; case 'b': case 'B': switch (ext[2]) { case 'm': case 'M': @@ -551,8 +697,11 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'e': case 'E': switch (ext[2]) { case 'b': case 'B': @@ -561,12 +710,16 @@ int MatchExtension(const char* ext) { switch (ext[4]) { case '\0': return AID_MEDIA_VIDEO; } + break; case 'p': case 'P': switch (ext[4]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; case 'm': case 'M': switch (ext[2]) { case '\0': return AID_MEDIA_VIDEO; @@ -574,30 +727,39 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_AUDIO; } + break; case 'v': case 'V': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; case 'x': case 'X': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'r': case 'R': switch (ext[2]) { case 'f': case 'F': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; case 'v': case 'V': switch (ext[2]) { case 'x': case 'X': switch (ext[3]) { case '\0': return AID_MEDIA_VIDEO; } + break; } + break; } + break; case 'x': case 'X': switch (ext[1]) { case 'b': case 'B': @@ -606,22 +768,29 @@ int MatchExtension(const char* ext) { switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'p': case 'P': switch (ext[2]) { case 'm': case 'M': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; case 'w': case 'W': switch (ext[2]) { case 'd': case 'D': switch (ext[3]) { case '\0': return AID_MEDIA_IMAGE; } + break; } + break; } + break; } return 0; diff --git a/cmds/installd/matchgen.py b/cmds/installd/matchgen.py index 131487ddca..42ce82b4b4 100644 --- a/cmds/installd/matchgen.py +++ b/cmds/installd/matchgen.py @@ -84,6 +84,8 @@ def dump(target, index): print "%scase '%s':" % (prefix, k) dump(target[k], index + 1) print "%s}" % (prefix) + if index > 0: + print "%sbreak;" % (prefix) dump(trie, 0) diff --git a/cmds/installd/tests/installd_utils_test.cpp b/cmds/installd/tests/installd_utils_test.cpp index bcdd03efad..ad7a5ae6a2 100644 --- a/cmds/installd/tests/installd_utils_test.cpp +++ b/cmds/installd/tests/installd_utils_test.cpp @@ -21,6 +21,7 @@ #include <gtest/gtest.h> #include "InstalldNativeService.h" +#include "MatchExtensionGen.h" #include "globals.h" #include "utils.h" @@ -529,5 +530,19 @@ TEST_F(UtilsTest, ValidateApkPathSubdirs) { EXPECT_NE(0, validate_apk_path_subdirs("/data/app/com.example/dir/dir/dir//file")); } +TEST_F(UtilsTest, MatchExtension_Valid) { + EXPECT_EQ(AID_MEDIA_VIDEO, MatchExtension("mpg")); + EXPECT_EQ(AID_MEDIA_VIDEO, MatchExtension("mpeg")); + EXPECT_EQ(AID_MEDIA_VIDEO, MatchExtension("mPeG")); + EXPECT_EQ(AID_MEDIA_VIDEO, MatchExtension("MPEG")); +} + +TEST_F(UtilsTest, MatchExtension_Invalid) { + EXPECT_EQ(0, MatchExtension("log")); + EXPECT_EQ(0, MatchExtension("3amp")); + EXPECT_EQ(0, MatchExtension("fpe")); + EXPECT_EQ(0, MatchExtension("docx")); +} + } // namespace installd } // namespace android |