/* * Copyright 2017, 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. */ #ifndef TEST_UTILS_H #define TEST_UTILS_H #include "gtest/gtest.h" namespace android { namespace spirit { template class EntityCounter : public DoNothingVisitor { public: EntityCounter() : mCount(0) {} void visit(T *) override { mCount++; } int getCount() const { return mCount; } private: int mCount; }; template int countEntity(Entity *e) { EntityCounter v; e->accept(&v); return v.getCount(); } // Returns a caller owned string for the full path to the relative path inside // the Android source tree static inline std::string getAbsolutePath(const std::string &relativePath) { std::string full(getenv("ANDROID_BUILD_TOP")); return full.append("/").append(relativePath); } } // namespace spirit } // namespace android #endif // TEST_UTILS_H