14d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro/* 24d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Copyright (C) 2016 The Android Open Source Project 34d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * 44d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Licensed under the Apache License, Version 2.0 (the "License"); 54d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * you may not use this file except in compliance with the License. 64d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * You may obtain a copy of the License at 74d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * 84d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * http://www.apache.org/licenses/LICENSE-2.0 94d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * 104d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Unless required by applicable law or agreed to in writing, software 114d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * distributed under the License is distributed on an "AS IS" BASIS, 124d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * See the License for the specific language governing permissions and 144d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * limitations under the License. 154d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro */ 164d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 174d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#ifndef _GTS_NANOAPPS_GENERAL_TEST_GET_TIME_TEST_H_ 184d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#define _GTS_NANOAPPS_GENERAL_TEST_GET_TIME_TEST_H_ 194d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 204d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#include <general_test/test.h> 214d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 224d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguronamespace general_test { 234d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 244d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro/** 254d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Checks that chreGetTime() is reasonable. 264d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * 274d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * We check that it's monotonically increasing, and mostly in line with 284d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * the application processor's notion of time passing. 294d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * 304d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Protocol: 314d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Host: kGetTimeTest, no data 324d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Nanoapp: kContinue, 64-bit timestamp (little endian) 334d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * [2.5 second pause] 344d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Host: kContinue, no data 354d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * Nanoapp: kContinue, 64-bit timestamp (little endian) 364d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro * [Host declares pass] 374d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro */ 384d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguroclass GetTimeTest : public Test { 394d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro public: 404d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro GetTimeTest(); 414d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 424d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro protected: 434d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro void handleEvent(uint32_t senderInstanceId, uint16_t eventType, 444d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro const void* eventData) override; 454d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro void setUp(uint32_t messageSize, const void *message) override; 464d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 474d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro private: 484d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro int mContinueCount; 494d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro}; 504d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 514d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro} // namespace general_test 524d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 534d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro 544d04a937b1bf7a949dfb00650b2640a9ed0c8acaArthur Ishiguro#endif // _GTS_NANOAPPS_GENERAL_TEST_GET_TIME_TEST_H_ 55