Move IBaz default implementation to hardware/interfaces

Test: adb shell hidl_test_java passes

Change-Id: Ibebdf8b3f14fee4964f5a10728f61d375820465a
diff --git a/test/java_test/Android.bp b/test/java_test/Android.bp
index be0f89f..e24fbe0 100644
--- a/test/java_test/Android.bp
+++ b/test/java_test/Android.bp
@@ -7,6 +7,7 @@
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
+        "liblog",
         "libutils",
         "android.hardware.tests.baz@1.0",
         "android.hardware.tests.expression@1.0",
@@ -14,6 +15,9 @@
     ],
 
     static_libs: ["libgtest"],
+    required: [
+        "android.hardware.tests.baz@1.0-impl",
+    ],
 
     compile_multilib: "both",
     multilib: {
diff --git a/test/java_test/hidl_test_java_native.cpp b/test/java_test/hidl_test_java_native.cpp
index b17ea0c..adb928b 100644
--- a/test/java_test/hidl_test_java_native.cpp
+++ b/test/java_test/hidl_test_java_native.cpp
@@ -5,6 +5,8 @@
 
 #include <android/hardware/tests/baz/1.0/IBaz.h>
 
+#include <hidl/LegacySupport.h>
+
 #include <gtest/gtest.h>
 
 #include <hidl/HidlTransportSupport.h>
@@ -18,6 +20,7 @@
 using ::android::hardware::hidl_vec;
 using ::android::hardware::hidl_string;
 using ::android::hardware::configureRpcThreadpool;
+using ::android::hardware::defaultPassthroughServiceImplementation;
 using ::android::hardware::joinRpcThreadpool;
 using ::android::hardware::Return;
 using ::android::hardware::Void;
@@ -40,104 +43,10 @@
     return Void();
 }
 
-struct Baz : public IBaz {
-    Return<void> someBaseMethod() override;
-
-    Return<void> someOtherBaseMethod(
-            const IBaz::Foo &foo, someOtherBaseMethod_cb _hidl_cb) override;
-
-    Return<void> someMethodWithFooArrays(
-            const hidl_array<IBaz::Foo, 2> &fooInput,
-            someMethodWithFooArrays_cb _hidl_cb) override;
-
-    Return<void> someMethodWithFooVectors(
-            const hidl_vec<IBaz::Foo> &fooInput,
-            someMethodWithFooVectors_cb _hidl_cb) override;
-
-    Return<void> someMethodWithVectorOfArray(
-            const IBase::VectorOfArray &in,
-            someMethodWithVectorOfArray_cb _hidl_cb) override;
-
-    Return<void> someMethodTakingAVectorOfArray(
-            const hidl_vec<hidl_array<uint8_t, 6> > &in,
-            someMethodTakingAVectorOfArray_cb _hidl_cb) override;
-
-    Return<void> transpose(
-            const IBase::StringMatrix5x3 &in,
-            transpose_cb _hidl_cb) override;
-
-    Return<void> transpose2(
-            const hidl_array<hidl_string, 5, 3> &in,
-            transpose2_cb _hidl_cb) override;
-
-    Return<bool> someBoolMethod(bool x) override;
-
-    Return<void> someBoolArrayMethod(
-            const hidl_array<bool, 3> &x,
-            someBoolArrayMethod_cb _hidl_cb) override;
-
-    Return<void> someBoolVectorMethod(
-            const hidl_vec<bool> &x, someBoolVectorMethod_cb _hidl_cb) override;
-
-    Return<void> doSomethingElse(
-            const hidl_array<int32_t, 15> &param,
-            doSomethingElse_cb _hidl_cb) override;
-
-    Return<void> doThis(float param) override;
-
-    Return<int32_t> doThatAndReturnSomething(int64_t param) override;
-
-    Return<double> doQuiteABit(
-            int32_t a,
-            int64_t b,
-            float c,
-            double d) override;
-
-    Return<void> doStuffAndReturnAString(
-            doStuffAndReturnAString_cb _hidl_cb) override;
-
-    Return<void> mapThisVector(
-            const hidl_vec<int32_t>& param, mapThisVector_cb _hidl_cb) override;
-
-    Return<void> callMe(const sp<IBazCallback>& cb) override;
-
-    Return<void> callMeLater(const sp<IBazCallback>& cb) override;
-    Return<void> iAmFreeNow() override;
-    Return<void> dieNow() override;
-
-    Return<IBaz::SomeEnum> useAnEnum(IBaz::SomeEnum zzz) override;
-
-    Return<void> haveSomeStrings(
-            const hidl_array<hidl_string, 3> &array,
-            haveSomeStrings_cb _hidl_cb) override;
-
-    Return<void> haveAStringVec(
-            const hidl_vec<hidl_string>& vector,
-            haveAStringVec_cb _hidl_cb) override;
-
-    Return<void> returnABunchOfStrings(returnABunchOfStrings_cb _hidl_cb) override;
-
-    Return<void> takeAMask(IBase::BitField bf, uint8_t first,
-            const IBase::MyMask& second, uint8_t third, takeAMask_cb _hidl_cb) override;
-
-    Return<uint8_t> returnABitField() override;
-
-    Return<uint32_t> size(uint32_t size) override;
-
-    Return<void> getNestedStructs(getNestedStructs_cb _hidl_cb) override;
-
-private:
-    sp<IBazCallback> mStoredCallback;
-};
-
-Return<void> Baz::someBaseMethod() {
-    LOG(INFO) << "Baz::someBaseMethod";
-
-    return Void();
-}
-
 using std::to_string;
 
+// TODO(b/35703683) : Modify all tests to use autogenerated toString() instead to the below methods
+
 static std::string to_string(const IBaz::Foo::Bar &bar);
 static std::string to_string(const IBaz::Foo &foo);
 static std::string to_string(const hidl_string &s);
@@ -259,47 +168,6 @@
     return to_string(M.s);
 }
 
-Return<void> Baz::someOtherBaseMethod(
-        const IBaz::Foo &foo, someOtherBaseMethod_cb _hidl_cb) {
-    LOG(INFO) << "Baz::someOtherBaseMethod "
-              << to_string(foo);
-
-    _hidl_cb(foo);
-
-    return Void();
-}
-
-Return<void> Baz::someMethodWithFooArrays(
-        const hidl_array<IBaz::Foo, 2> &fooInput,
-        someMethodWithFooArrays_cb _hidl_cb) {
-    LOG(INFO) << "Baz::someMethodWithFooArrays "
-              << to_string(fooInput);
-
-    hidl_array<IBaz::Foo, 2> fooOutput;
-    fooOutput[0] = fooInput[1];
-    fooOutput[1] = fooInput[0];
-
-    _hidl_cb(fooOutput);
-
-    return Void();
-}
-
-Return<void> Baz::someMethodWithFooVectors(
-        const hidl_vec<IBaz::Foo> &fooInput,
-        someMethodWithFooVectors_cb _hidl_cb) {
-    LOG(INFO) << "Baz::someMethodWithFooVectors "
-              << to_string(fooInput);
-
-    hidl_vec<IBaz::Foo> fooOutput;
-    fooOutput.resize(2);
-    fooOutput[0] = fooInput[1];
-    fooOutput[1] = fooInput[0];
-
-    _hidl_cb(fooOutput);
-
-    return Void();
-}
-
 static std::string VectorOfArray_to_string(const IBase::VectorOfArray &in) {
     std::string out;
     out += "VectorOfArray(";
@@ -326,300 +194,6 @@
     return out;
 }
 
-Return<void> Baz::someMethodWithVectorOfArray(
-        const IBase::VectorOfArray &in,
-        someMethodWithVectorOfArray_cb _hidl_cb) {
-    LOG(INFO) << "Baz::someMethodWithVectorOfArray "
-              << VectorOfArray_to_string(in);
-
-    IBase::VectorOfArray out;
-
-    const size_t n = in.addresses.size();
-    out.addresses.resize(n);
-
-    for (size_t i = 0; i < n; ++i) {
-        out.addresses[i] = in.addresses[n - 1 - i];
-    }
-
-    _hidl_cb(out);
-
-    return Void();
-}
-
-Return<void> Baz::someMethodTakingAVectorOfArray(
-        const hidl_vec<hidl_array<uint8_t, 6> > &in,
-        someMethodTakingAVectorOfArray_cb _hidl_cb) {
-    LOG(INFO) << "Baz::someMethodTakingAVectorOfArray "
-              << to_string(in);
-
-    const size_t n = in.size();
-
-    hidl_vec<hidl_array<uint8_t, 6> > out;
-    out.resize(n);
-
-    for (size_t i = 0; i < n; ++i) {
-        out[i] = in[n - 1 - i];
-    }
-
-    _hidl_cb(out);
-
-    return Void();
-}
-
-Return<void> Baz::transpose(
-        const IBase::StringMatrix5x3 &in, transpose_cb _hidl_cb) {
-    LOG(INFO) << "Baz::transpose " << to_string(in);
-
-    IBase::StringMatrix3x5 out;
-    for (size_t i = 0; i < 3; ++i) {
-        for (size_t j = 0; j < 5; ++j) {
-            out.s[i][j] = in.s[j][i];
-        }
-    }
-
-    _hidl_cb(out);
-
-    return Void();
-}
-
-Return<void> Baz::transpose2(
-        const hidl_array<hidl_string, 5, 3> &in, transpose2_cb _hidl_cb) {
-    LOG(INFO) << "Baz::transpose2 " << to_string(in);
-
-    hidl_array<hidl_string, 3, 5> out;
-    for (size_t i = 0; i < 3; ++i) {
-        for (size_t j = 0; j < 5; ++j) {
-            out[i][j] = in[j][i];
-        }
-    }
-
-    _hidl_cb(out);
-
-    return Void();
-}
-
-Return<bool> Baz::someBoolMethod(bool x) {
-    LOG(INFO) << "Baz::someBoolMethod(" << to_string(x) << ")";
-
-    return !x;
-}
-
-Return<void> Baz::someBoolArrayMethod(
-        const hidl_array<bool, 3> &x, someBoolArrayMethod_cb _hidl_cb) {
-    LOG(INFO) << "Baz::someBoolArrayMethod("
-        << to_string(x[0])
-        << ", "
-        << to_string(x[1])
-        << ", "
-        << to_string(x[2])
-        << ")";
-
-    hidl_array<bool, 4> out;
-    out[0] = !x[0];
-    out[1] = !x[1];
-    out[2] = !x[2];
-    out[3] = true;
-
-    _hidl_cb(out);
-
-    return Void();
-}
-
-Return<void> Baz::someBoolVectorMethod(
-        const hidl_vec<bool> &x, someBoolVectorMethod_cb _hidl_cb) {
-    LOG(INFO) << "Baz::someBoolVectorMethod(" << to_string(x) << ")";
-
-    hidl_vec<bool> out;
-    out.resize(x.size());
-    for (size_t i = 0; i < x.size(); ++i) {
-        out[i] = !x[i];
-    }
-
-    _hidl_cb(out);
-
-    return Void();
-}
-
-Return<void> Baz::doSomethingElse(
-        const hidl_array<int32_t, 15> &param, doSomethingElse_cb _hidl_cb) {
-    LOG(INFO) << "Baz::doSomethingElse(...)";
-
-    hidl_array<int32_t, 32> result;
-    for (size_t i = 0; i < 15; ++i) {
-        result[i] = 2 * param[i];
-        result[15 + i] = param[i];
-    }
-    result[30] = 1;
-    result[31] = 2;
-
-    _hidl_cb(result);
-
-    return Void();
-}
-
-Return<void> Baz::doThis(float param) {
-    LOG(INFO) << "Baz::doThis(" << param << ")";
-
-    return Void();
-}
-
-Return<int32_t> Baz::doThatAndReturnSomething(int64_t param) {
-    LOG(INFO) << "Baz::doThatAndReturnSomething(" << param << ")";
-
-    return 666;
-}
-
-Return<double> Baz::doQuiteABit(
-        int32_t a,
-        int64_t b,
-        float c,
-        double d) {
-    LOG(INFO) << "Baz::doQuiteABit("
-              << a
-              << ", "
-              << b
-              << ", "
-              << c
-              << ", "
-              << d
-              << ")";
-
-    return 666.5;
-}
-
-Return<void> Baz::doStuffAndReturnAString(
-        doStuffAndReturnAString_cb _hidl_cb) {
-    LOG(INFO) << "doStuffAndReturnAString";
-
-    hidl_string s;
-    s = "Hello, world!";
-
-    _hidl_cb(s);
-
-    return Void();
-}
-
-Return<void> Baz::mapThisVector(
-        const hidl_vec<int32_t>& param, mapThisVector_cb _hidl_cb) {
-    LOG(INFO) << "mapThisVector";
-
-    hidl_vec<int32_t> out;
-    out.resize(param.size());
-    for (size_t i = 0; i < param.size(); ++i) {
-        out[i] = param[i] * 2;
-    }
-
-    _hidl_cb(out);
-
-    return Void();
-}
-
-Return<void> Baz::callMe(const sp<IBazCallback>& cb) {
-    LOG(INFO) << "callMe " << cb.get();
-
-    if (cb != NULL) {
-        sp<IBazCallback> my_cb = new BazCallback;
-        cb->heyItsMe(my_cb);
-    }
-
-    return Void();
-}
-
-Return<void> Baz::callMeLater(const sp<IBazCallback>& cb) {
-    LOG(INFO) << "callMeLater " << cb.get();
-
-    mStoredCallback = cb;
-
-    return Void();
-}
-
-Return<void> Baz::iAmFreeNow() {
-    if (mStoredCallback != nullptr) {
-        mStoredCallback->hey();
-    }
-    return Void();
-}
-
-Return<void> Baz::dieNow() {
-    exit(1);
-    return Void();
-}
-
-Return<IBaz::SomeEnum> Baz::useAnEnum(IBaz::SomeEnum zzz) {
-    LOG(INFO) << "useAnEnum " << (int)zzz;
-
-    return SomeEnum::goober;
-}
-
-Return<void> Baz::haveSomeStrings(
-        const hidl_array<hidl_string, 3> &array, haveSomeStrings_cb _hidl_cb) {
-    LOG(INFO) << "haveSomeStrings("
-              << to_string(array)
-              << ")";
-
-    hidl_array<hidl_string, 2> result;
-    result[0] = "Hello";
-    result[1] = "World";
-
-    _hidl_cb(result);
-
-    return Void();
-}
-
-Return<void> Baz::haveAStringVec(
-        const hidl_vec<hidl_string>& vector,
-        haveAStringVec_cb _hidl_cb) {
-    LOG(INFO) << "haveAStringVec(" << to_string(vector) << ")";
-
-    hidl_vec<hidl_string> result;
-    result.resize(2);
-
-    result[0] = "Hello";
-    result[1] = "World";
-
-    _hidl_cb(result);
-
-    return Void();
-}
-
-Return<void> Baz::returnABunchOfStrings(returnABunchOfStrings_cb _hidl_cb) {
-    hidl_string eins; eins = "Eins";
-    hidl_string zwei; zwei = "Zwei";
-    hidl_string drei; drei = "Drei";
-    _hidl_cb(eins, zwei, drei);
-
-    return Void();
-}
-
-
-Return<void> Baz::takeAMask(IBase::BitField bf, uint8_t first,
-        const IBase::MyMask& second, uint8_t third, takeAMask_cb _hidl_cb) {
-    _hidl_cb(bf, bf | first, second.value & bf, (bf | bf) & third);
-    return Void();
-}
-
-Return<uint8_t> Baz::returnABitField() {
-    return 0;
-}
-
-Return<uint32_t> Baz::size(uint32_t size) {
-    return size;
-}
-
-Return<void> Baz::getNestedStructs(IBaz::getNestedStructs_cb _hidl_cb) {
-    int size = 5;
-    hidl_vec<IBaz::NestedStruct> result;
-    result.resize(size);
-    for (int i = 0; i < size; i++) {
-        result[i].a = i;
-        if (i == 1) {
-            result[i].matrices.resize(6);
-        }
-    }
-    _hidl_cb(result);
-    return Void();
-}
-
 static void usage(const char *me) {
     fprintf(stderr, "%s [-c]lient | [-s]erver\n", me);
 }
@@ -1113,13 +687,8 @@
         ::testing::InitGoogleTest(&argc, argv);
         int status = RUN_ALL_TESTS();
         return status;
-    } else {
-        sp<Baz> baz = new Baz;
-        configureRpcThreadpool(1, true /* callerWillJoin */);
-        baz->registerAsService("baz");
-        joinRpcThreadpool();
     }
 
-    return 0;
-}
+    return defaultPassthroughServiceImplementation<IBaz>("baz");
 
+}