Add integration test support for @utf8InCpp

This patch adds validation of String and String[] marked with
@utf8InCpp.

While here, move everything but main() in aidl_test_service.cpp to an
anonymous namespace.

Bug: 26729450
Test: Integration, unittests continue to pass

Change-Id: Iab79bc23ed8a34168544425952afd2e29cdbe030
diff --git a/tests/aidl_test_service.cpp b/tests/aidl_test_service.cpp
index 4cf4113..1046f99 100644
--- a/tests/aidl_test_service.cpp
+++ b/tests/aidl_test_service.cpp
@@ -67,11 +67,10 @@
 
 // Standard library
 using std::map;
+using std::string;
 using std::unique_ptr;
 using std::vector;
 
-namespace android {
-namespace generated {
 namespace {
 
 class BinderCallback : public LooperCallback {
@@ -343,15 +342,38 @@
     return RepeatNullable(input, _aidl_return);
   }
 
+  Status RepeatUtf8CppString(const string& token,
+                             string* _aidl_return) override {
+    ALOGI("Repeating utf8 string '%s' of length=%zu", token.c_str(), token.size());
+    *_aidl_return = token;
+    return Status::ok();
+  }
+
+  Status RepeatNullableUtf8CppString(
+      const unique_ptr<string>& token,
+      unique_ptr<string>* _aidl_return) override {
+    if (!token) {
+      ALOGI("Received null @utf8InCpp string");
+      return Status::ok();
+    }
+    ALOGI("Repeating utf8 string '%s' of length=%zu",
+          token->c_str(), token->size());
+    _aidl_return->reset(new string(*token));
+    return Status::ok();
+  }
+
+  Status ReverseUtf8CppString(const vector<string>& input,
+                              vector<string>* repeated,
+                              vector<string>* _aidl_return) {
+    return ReverseArray(input, repeated, _aidl_return);
+  }
+
  private:
   map<String16, sp<INamedCallback>> service_map_;
 };
 
-}  // namespace
-
 int Run() {
-  android::sp<android::generated::NativeService> service =
-      new android::generated::NativeService;
+  android::sp<NativeService> service = new NativeService;
   sp<Looper> looper(Looper::prepare(0 /* opts */));
 
   int binder_fd = -1;
@@ -379,9 +401,8 @@
   return 0;
 }
 
-}  // namespace generated
-}  // namespace android
+}  // namespace
 
 int main(int /* argc */, char* /* argv */ []) {
-  return android::generated::Run();
+  return Run();
 }