AlarmTestHarness.cc revision 223cecf8b6905fec65c509cf85b20edbdbd28344
12bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson/****************************************************************************** 22bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * 32bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * Copyright (C) 2014 Google, Inc. 42bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * 52bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * Licensed under the Apache License, Version 2.0 (the "License"); 62bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * you may not use this file except in compliance with the License. 72bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * You may obtain a copy of the License at: 82bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * 92bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * http://www.apache.org/licenses/LICENSE-2.0 102bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * 112bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * Unless required by applicable law or agreed to in writing, software 122bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * distributed under the License is distributed on an "AS IS" BASIS, 132bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 142bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * See the License for the specific language governing permissions and 152bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * limitations under the License. 162bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson * 172bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson ******************************************************************************/ 182bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson 191b2bd2c8b5b7be80cb4ce0ecf4e021ad16e4a540Marie Janssen#include "AlarmTestHarness.h" 201b2bd2c8b5b7be80cb4ce0ecf4e021ad16e4a540Marie Janssen 211b2bd2c8b5b7be80cb4ce0ecf4e021ad16e4a540Marie Janssen#include <hardware/bluetooth.h> 222bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson 23c196f214c5ae349ec2022f8d3cbaf56910b3b9f8Pavlin Radoslavov#include "osi/include/alarm.h" 24d2e250824fca5c42b87b3b6f5fa19646ffa2d321Pavlin Radoslavov#include "osi/include/wakelock.h" 25ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnson 26223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavovstatic bool is_wake_lock_acquired = false; 27223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov 28223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavovstatic int acquire_wake_lock_cb(const char *lock_name) 29223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov{ 30223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov is_wake_lock_acquired = true; 31223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov return BT_STATUS_SUCCESS; 32223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov} 332bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson 34223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavovstatic int release_wake_lock_cb(const char *lock_name) 35223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov{ 36223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov is_wake_lock_acquired = false; 37223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov return BT_STATUS_SUCCESS; 382bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson} 392bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson 40223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavovstatic bt_os_callouts_t bt_wakelock_callouts = { 41223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov sizeof(bt_os_callouts_t), 42223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov NULL, 43223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov acquire_wake_lock_cb, 44223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov release_wake_lock_cb 45223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov}; 46223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov 472bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnsonvoid AlarmTestHarness::SetUp() { 48ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnson AllocationTestHarness::SetUp(); 49ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnson 509713b9476ca58502b2737c8a638c8d707c5b3542Pavlin Radoslavov TIMER_INTERVAL_FOR_WAKELOCK_IN_MS = 500; 512bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson 52223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov wakelock_set_os_callouts(&bt_wakelock_callouts); 532bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson} 542bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson 552bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnsonvoid AlarmTestHarness::TearDown() { 560d6a501d0517c186f11cbee294ae2c509073de91Pavlin Radoslavov alarm_cleanup(); 57d2e250824fca5c42b87b3b6f5fa19646ffa2d321Pavlin Radoslavov wakelock_cleanup(); 58223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov wakelock_set_os_callouts(NULL); 591b2bd2c8b5b7be80cb4ce0ecf4e021ad16e4a540Marie Janssen 60ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnson AllocationTestHarness::TearDown(); 612bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson} 622bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson 631b2bd2c8b5b7be80cb4ce0ecf4e021ad16e4a540Marie Janssenbool AlarmTestHarness::WakeLockHeld() { 64223cecf8b6905fec65c509cf85b20edbdbd28344Pavlin Radoslavov return is_wake_lock_acquired; 651b2bd2c8b5b7be80cb4ce0ecf4e021ad16e4a540Marie Janssen} 66