Merge changes from topic "qtaguidReroute"

* changes:
  Directly test the qtaguid module with out libcutil
  Make qtaguid test static link to libcutils
diff --git a/api/qtaguid/Android.mk b/api/qtaguid/Android.mk
index fe2dfb4..39ca48d 100644
--- a/api/qtaguid/Android.mk
+++ b/api/qtaguid/Android.mk
@@ -20,8 +20,8 @@
 LOCAL_MODULE_TAGS := tests
 LOCAL_MODULE := vts_test_binary_qtaguid_module
 LOCAL_SRC_FILES := SocketTagUserSpace.cpp
-LOCAL_SHARED_LIBRARIES += libcutils libutils liblog libbase
-LOCAL_STATIC_LIBRARIES += libtestUtil
+LOCAL_SHARED_LIBRARIES += libutils liblog libbase
+LOCAL_STATIC_LIBRARIES += libqtaguid
 LOCAL_C_INCLUDES += system/extras/tests/include \
                     test/vts/testcases/system/qtaguid/sample
 LOCAL_CFLAGS += \
diff --git a/api/qtaguid/SocketTagUserSpace.cpp b/api/qtaguid/SocketTagUserSpace.cpp
index ff6e348..1653351 100644
--- a/api/qtaguid/SocketTagUserSpace.cpp
+++ b/api/qtaguid/SocketTagUserSpace.cpp
@@ -40,6 +40,7 @@
 
 #include <android-base/stringprintf.h>
 #include <gtest/gtest.h>
+#include <qtaguid/qtaguid.h>
 #include <utils/Log.h>
 
 static const int kMaxCounterSet = 2;
@@ -134,13 +135,13 @@
     std::cout << "socket creation failed: %s" << strerror(errno) << std::endl;
     return -1;
   }
-  if (qtaguid_tagSocket(fd, tag, getuid()) < 0) {
+  if (legacy_tagSocket(fd, tag, getuid()) < 0) {
     std::cout << "socket setup: failed to tag" << std::endl;
     close(fd);
     return -1;
   }
 
-  if (qtaguid_untagSocket(fd) < 0) {
+  if (legacy_untagSocket(fd) < 0) {
     std::cout << "socket setup: Unexpected results" << std::endl;
     close(fd);
     return -1;
@@ -150,10 +151,6 @@
 
 /* Check if the socket is properly tagged by read through the proc file.*/
 bool SockInfo::checkTag(uint64_t acct_tag, uid_t uid) {
-  uint64_t k_tag;
-  uint32_t k_uid;
-  long dummy_count;
-  pid_t dummy_pid;
 
   std::ifstream fctrl("/proc/net/xt_qtaguid/ctrl", std::fstream::in);
   if (!fctrl.is_open()) {
@@ -179,9 +176,6 @@
  */
 bool SockInfo::checkStats(uint64_t acct_tag, uid_t uid, int counterSet,
                           uint32_t *stats_result) {
-  FILE *stats_fd;
-  ssize_t read_size;
-  size_t line_size;
   uint64_t kTag = (uint64_t)acct_tag << 32;
 
   std::ifstream fstats("/proc/net/xt_qtaguid/stats", std::fstream::in);
@@ -236,12 +230,12 @@
     EXPECT_GE(stat("/dev/xt_qtaguid", &nodeStat), 0)
         << "fail to check /dev/xt_qtaguid";
     // We want to clean up any previous faulty test runs.
-    EXPECT_GE(qtaguid_deleteTagData(0, fake_uid), 0)
+    EXPECT_GE(legacy_deleteTagData(0, fake_uid), 0)
         << "Failed to delete fake_uid";
-    EXPECT_GE(qtaguid_deleteTagData(0, fake_uid2), 0)
+    EXPECT_GE(legacy_deleteTagData(0, fake_uid2), 0)
         << "Failed to delete fake_uid2";
-    EXPECT_GE(qtaguid_deleteTagData(0, my_uid), 0) << "Failed to delete my_uid";
-    EXPECT_GE(qtaguid_deleteTagData(0, inet_uid), 0)
+    EXPECT_GE(legacy_deleteTagData(0, my_uid), 0) << "Failed to delete my_uid";
+    EXPECT_GE(legacy_deleteTagData(0, inet_uid), 0)
         << "Failed to delete inet_uid";
     ASSERT_FALSE(sock_0.setup(valid_tag1)) << "socket0 setup failed";
     ASSERT_FALSE(sock_1.setup(valid_tag1)) << "socket1 setup failed";
@@ -259,7 +253,7 @@
 
 /* Tag to a invalid socket fd, should fail */
 TEST_F(SocketTagUsrSpaceTest, invalidSockfdFail) {
-  EXPECT_LT(qtaguid_tagSocket(-1, valid_tag1, my_uid), 0)
+  EXPECT_LT(legacy_tagSocket(-1, valid_tag1, my_uid), 0)
       << "Invalid socketfd case 1, should fail.";
 }
 
@@ -274,8 +268,8 @@
 
 /* Untag invalid socket fd, should fail */
 TEST_F(SocketTagUsrSpaceTest, UntagInvalidSocketFail) {
-  EXPECT_LT(qtaguid_untagSocket(-1), 0) << "invalid socket fd, should fail";
-  EXPECT_LT(qtaguid_untagSocket(sock_0.fd), 0)
+  EXPECT_LT(legacy_untagSocket(-1), 0) << "invalid socket fd, should fail";
+  EXPECT_LT(legacy_untagSocket(sock_0.fd), 0)
       << "no tags on sock0, should fail";
 }
 
@@ -285,7 +279,7 @@
  */
 TEST_F(SocketTagUsrSpaceTest, CounterSetNumExceedFail) {
   int wrongCounterNum = kMaxCounterSet + 1;
-  EXPECT_LT(qtaguid_setCounterSet(wrongCounterNum, my_uid), 0)
+  EXPECT_LT(legacy_setCounterSet(wrongCounterNum, my_uid), 0)
       << "Invalid counter set number, should fail.";
 }
 
@@ -293,7 +287,7 @@
 TEST_F(SocketTagUsrSpaceTest, NoUidTag) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, 0), 0)
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, 0), 0)
       << "tag failed without uid";
   EXPECT_TRUE(sock_0.checkTag(valid_tag1, my_uid)) << "Tag not found";
 }
@@ -305,7 +299,7 @@
 TEST_F(SocketTagUsrSpaceTest, NoTagNoUid) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, 0, 0), 0)
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, 0, 0), 0)
       << "no tag and uid infomation";
   ASSERT_TRUE(sock_0.checkTag(0, my_uid)) << "Tag not found";
 }
@@ -314,9 +308,9 @@
 TEST_F(SocketTagUsrSpaceTest, ValidUntag) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, my_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, my_uid), 0);
   EXPECT_TRUE(sock_0.checkTag(valid_tag1, my_uid)) << "Tag not found";
-  EXPECT_GE(qtaguid_untagSocket(sock_0.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_0.fd), 0);
   EXPECT_FALSE(sock_0.checkTag(valid_tag1, my_uid)) << "Tag should be removed";
 }
 
@@ -324,7 +318,7 @@
 TEST_F(SocketTagUsrSpaceTest, ValidFirsttag) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
   EXPECT_TRUE(sock_0.checkTag(valid_tag2, fake_uid)) << "Tag not found.";
 }
 
@@ -332,8 +326,8 @@
 TEST_F(SocketTagUsrSpaceTest, ValidReTag) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
   EXPECT_TRUE(sock_0.checkTag(valid_tag2, fake_uid)) << "Tag not found.";
 }
 
@@ -344,8 +338,8 @@
 TEST_F(SocketTagUsrSpaceTest, ValidReTagWithAcctTagChange) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, fake_uid), 0);
   EXPECT_TRUE(sock_0.checkTag(valid_tag1, fake_uid)) << "Tag not found.";
   EXPECT_FALSE(sock_0.checkTag(valid_tag2, fake_uid))
       << "Tag should not be here";
@@ -356,8 +350,8 @@
  * Should keep both
  */
 TEST_F(SocketTagUsrSpaceTest, ReTagWithUidChange) {
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, fake_uid2), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, fake_uid2), 0);
 }
 
 /*
@@ -367,8 +361,8 @@
 TEST_F(SocketTagUsrSpaceTest, ReTagWithUidChange2) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag2, fake_uid2), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid2), 0);
   EXPECT_TRUE(sock_0.checkTag(valid_tag2, fake_uid2)) << "Tag not found.";
   EXPECT_FALSE(sock_0.checkTag(valid_tag2, fake_uid))
       << "Tag should not be here";
@@ -378,14 +372,14 @@
 TEST_F(SocketTagUsrSpaceTest, TagAnotherSocket) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, max_uint_tag, my_uid), 0);
-  EXPECT_GE(qtaguid_tagSocket(sock_1.fd, valid_tag1, fake_uid2), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, max_uint_tag, my_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_1.fd, valid_tag1, fake_uid2), 0);
   EXPECT_TRUE(sock_1.checkTag(valid_tag1, fake_uid2)) << "Tag not found.";
-  EXPECT_GE(qtaguid_untagSocket(sock_0.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_0.fd), 0);
   EXPECT_FALSE(sock_0.checkTag(max_uint_tag, fake_uid))
       << "Tag should not be there";
   EXPECT_TRUE(sock_1.checkTag(valid_tag1, fake_uid2)) << "Tag not found";
-  EXPECT_GE(qtaguid_untagSocket(sock_1.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_1.fd), 0);
   EXPECT_FALSE(sock_1.checkTag(valid_tag1, fake_uid2))
       << "Tag should not be there";
 }
@@ -394,15 +388,15 @@
 TEST_F(SocketTagUsrSpaceTest, SameUidTwoSocket) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, my_uid), 0);
-  EXPECT_GE(qtaguid_tagSocket(sock_1.fd, valid_tag2, my_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, my_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_1.fd, valid_tag2, my_uid), 0);
   EXPECT_TRUE(sock_1.checkTag(valid_tag2, my_uid)) << "Tag not found.";
   EXPECT_TRUE(sock_0.checkTag(valid_tag1, my_uid)) << "Tag not found.";
-  EXPECT_GE(qtaguid_untagSocket(sock_0.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_0.fd), 0);
   EXPECT_FALSE(sock_0.checkTag(valid_tag1, my_uid))
       << "Tag should not be there";
   EXPECT_TRUE(sock_1.checkTag(valid_tag2, my_uid)) << "Tag not found";
-  EXPECT_GE(qtaguid_untagSocket(sock_1.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_1.fd), 0);
   EXPECT_FALSE(sock_1.checkTag(valid_tag2, my_uid))
       << "Tag should not be there";
 }
@@ -411,15 +405,15 @@
 TEST_F(SocketTagUsrSpaceTest, SameTagTwoSocket) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, fake_uid), 0);
-  EXPECT_GE(qtaguid_tagSocket(sock_1.fd, valid_tag1, fake_uid2), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_1.fd, valid_tag1, fake_uid2), 0);
   EXPECT_TRUE(sock_1.checkTag(valid_tag1, fake_uid)) << "Tag not found.";
   EXPECT_TRUE(sock_0.checkTag(valid_tag1, fake_uid2)) << "Tag not found.";
-  EXPECT_GE(qtaguid_untagSocket(sock_0.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_0.fd), 0);
   EXPECT_FALSE(sock_0.checkTag(valid_tag1, fake_uid))
       << "Tag should not be there";
   EXPECT_TRUE(sock_1.checkTag(valid_tag1, fake_uid2)) << "Tag not found";
-  EXPECT_GE(qtaguid_untagSocket(sock_1.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_1.fd), 0);
   EXPECT_FALSE(sock_1.checkTag(valid_tag1, fake_uid2))
       << "Tag should not be there";
 }
@@ -429,7 +423,7 @@
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
   close(sock_0.fd);
-  EXPECT_LT(qtaguid_tagSocket(sock_0.fd, valid_tag1, my_uid), 0);
+  EXPECT_LT(legacy_tagSocket(sock_0.fd, valid_tag1, my_uid), 0);
   EXPECT_FALSE(sock_0.checkTag(valid_tag1, my_uid))
       << "Tag should not be there";
 }
@@ -438,11 +432,10 @@
 TEST_F(SocketTagUsrSpaceTest, UntagClosedSocketFail) {
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
-  EXPECT_GE(qtaguid_tagSocket(sock_1.fd, valid_tag1, my_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_1.fd, valid_tag1, my_uid), 0);
   EXPECT_TRUE(sock_1.checkTag(valid_tag1, my_uid));
   close(sock_1.fd);
-  EXPECT_LT(qtaguid_untagSocket(sock_1.fd), 0)
-      << "no tag attached, should fail";
+  EXPECT_LT(legacy_untagSocket(sock_1.fd), 0) << "no tag attached, should fail";
 }
 
 /*
@@ -454,10 +447,10 @@
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
   memset(stats_result_, 0, 2);
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, inet_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, inet_uid), 0);
   EXPECT_TRUE(sock_0.checkTag(valid_tag1, inet_uid)) << "tag not found";
   EXPECT_GE(server_download(sock_0, sock_1), 0);
-  EXPECT_GE(qtaguid_untagSocket(sock_0.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_0.fd), 0);
   close(sock_0.fd);
   EXPECT_TRUE(sock_0.checkStats(valid_tag1, inet_uid, 0, stats_result_))
       << "failed to retreive data";
@@ -474,16 +467,16 @@
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
   memset(stats_result_, 0, 2);
-  EXPECT_GE(qtaguid_tagSocket(sock_0.fd, valid_tag1, fake_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, fake_uid), 0);
   EXPECT_TRUE(sock_0.checkTag(valid_tag1, fake_uid)) << "tag not found";
   EXPECT_GE(server_download(sock_0, sock_1), 0);
-  EXPECT_GE(qtaguid_untagSocket(sock_0.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_0.fd), 0);
   EXPECT_TRUE(sock_0.checkStats(valid_tag1, fake_uid, 0, stats_result_))
       << "failed to retreive data";
   EXPECT_GT(*stats_result_, (uint32_t)0) << "no stats found for this socket";
   EXPECT_GT(*(stats_result_ + 1), (uint32_t)0)
       << "no stats stored for this socket";
-  EXPECT_GE(qtaguid_deleteTagData(0, fake_uid), 0)
+  EXPECT_GE(legacy_deleteTagData(0, fake_uid), 0)
       << "Failed to delete fake_uid";
   EXPECT_FALSE(sock_0.checkStats(valid_tag1, fake_uid, 0, stats_result_))
       << "NO DATA should be stored";
@@ -498,11 +491,11 @@
   SKIP_IF_QTAGUID_NOT_SUPPORTED();
 
   memset(stats_result_, 0, 2);
-  EXPECT_GE(qtaguid_tagSocket(sock_1.fd, valid_tag1, inet_uid), 0);
-  EXPECT_GE(qtaguid_setCounterSet(1, inet_uid), 0);
+  EXPECT_GE(legacy_tagSocket(sock_1.fd, valid_tag1, inet_uid), 0);
+  EXPECT_GE(legacy_setCounterSet(1, inet_uid), 0);
   EXPECT_TRUE(sock_1.checkTag(valid_tag1, inet_uid)) << "tag not found";
   EXPECT_GE(server_download(sock_0, sock_1), 0);
-  EXPECT_GE(qtaguid_untagSocket(sock_1.fd), 0);
+  EXPECT_GE(legacy_untagSocket(sock_1.fd), 0);
   close(sock_1.fd);
   EXPECT_TRUE(sock_1.checkStats(valid_tag1, inet_uid, 1, stats_result_))
       << "failed to retreive data";