summaryrefslogtreecommitdiff
path: root/cras/src/tests/alert_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cras/src/tests/alert_unittest.cc')
-rw-r--r--cras/src/tests/alert_unittest.cc227
1 files changed, 0 insertions, 227 deletions
diff --git a/cras/src/tests/alert_unittest.cc b/cras/src/tests/alert_unittest.cc
deleted file mode 100644
index ec1efcc4..00000000
--- a/cras/src/tests/alert_unittest.cc
+++ /dev/null
@@ -1,227 +0,0 @@
-// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <gtest/gtest.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include "cras_alert.h"
-
-namespace {
-
-void callback1(void* arg, void* data);
-void callback2(void* arg, void* data);
-void prepare(struct cras_alert* alert);
-
-struct cb_data_struct {
- int data;
-};
-
-static int cb1_called = 0;
-static cb_data_struct cb1_data;
-static int cb2_called = 0;
-static int cb2_set_pending = 0;
-static int prepare_called = 0;
-
-void ResetStub() {
- cb1_called = 0;
- cb2_called = 0;
- cb2_set_pending = 0;
- prepare_called = 0;
- cb1_data.data = 0;
-}
-
-class Alert : public testing::Test {
- protected:
- virtual void SetUp() { cb1_data.data = 0; }
-
- virtual void TearDown() {}
-};
-
-TEST_F(Alert, OneCallback) {
- struct cras_alert* alert = cras_alert_create(NULL, 0);
- cras_alert_add_callback(alert, &callback1, NULL);
- ResetStub();
- cras_alert_pending(alert);
- EXPECT_EQ(0, cb1_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, cb1_called);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, OneCallbackPost2Call1) {
- struct cras_alert* alert = cras_alert_create(NULL, 0);
- cras_alert_add_callback(alert, &callback1, NULL);
- ResetStub();
- // Alert twice, callback should only be called once.
- cras_alert_pending(alert);
- cras_alert_pending(alert);
- EXPECT_EQ(0, cb1_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, cb1_called);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, OneCallbackWithData) {
- struct cras_alert* alert = cras_alert_create(NULL, 0);
- struct cb_data_struct data = {1};
- cras_alert_add_callback(alert, &callback1, NULL);
- ResetStub();
- cras_alert_pending_data(alert, (void*)&data, sizeof(struct cb_data_struct));
- EXPECT_EQ(0, cb1_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, cb1_called);
- EXPECT_EQ(1, cb1_data.data);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, OneCallbackTwoDataCalledOnce) {
- struct cras_alert* alert = cras_alert_create(NULL, 0);
- struct cb_data_struct data = {1};
- struct cb_data_struct data2 = {2};
- cras_alert_add_callback(alert, &callback1, NULL);
- ResetStub();
- // Callback called with last data only.
- cras_alert_pending_data(alert, (void*)&data, sizeof(struct cb_data_struct));
- cras_alert_pending_data(alert, (void*)&data2, sizeof(struct cb_data_struct));
- EXPECT_EQ(0, cb1_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, cb1_called);
- EXPECT_EQ(2, cb1_data.data);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, OneCallbackTwoDataKeepAll) {
- struct cras_alert* alert =
- cras_alert_create(NULL, CRAS_ALERT_FLAG_KEEP_ALL_DATA);
- struct cb_data_struct data = {1};
- struct cb_data_struct data2 = {2};
- cras_alert_add_callback(alert, &callback1, NULL);
- ResetStub();
- // Callbacks with data should each be called.
- cras_alert_pending_data(alert, (void*)&data, sizeof(cb_data_struct));
- cras_alert_pending_data(alert, (void*)&data2, sizeof(cb_data_struct));
- EXPECT_EQ(0, cb1_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(2, cb1_called);
- EXPECT_EQ(2, cb1_data.data);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, TwoCallbacks) {
- struct cras_alert* alert = cras_alert_create(NULL, 0);
- cras_alert_add_callback(alert, &callback1, NULL);
- cras_alert_add_callback(alert, &callback2, NULL);
- ResetStub();
- cras_alert_pending(alert);
- EXPECT_EQ(0, cb1_called);
- EXPECT_EQ(0, cb2_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, cb1_called);
- EXPECT_EQ(1, cb2_called);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, NoPending) {
- struct cras_alert* alert = cras_alert_create(NULL, 0);
- cras_alert_add_callback(alert, &callback1, NULL);
- ResetStub();
- EXPECT_EQ(0, cb1_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(0, cb1_called);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, PendingInCallback) {
- struct cras_alert* alert1 = cras_alert_create(NULL, 0);
- struct cras_alert* alert2 = cras_alert_create(NULL, 0);
- cras_alert_add_callback(alert1, &callback1, NULL);
- cras_alert_add_callback(alert2, &callback2, alert1);
- ResetStub();
- cras_alert_pending(alert2);
- EXPECT_EQ(0, cb1_called);
- EXPECT_EQ(0, cb2_called);
- cb2_set_pending = 1;
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, cb1_called);
- EXPECT_EQ(1, cb2_called);
- cras_alert_destroy(alert1);
- cras_alert_destroy(alert2);
-}
-
-TEST_F(Alert, Prepare) {
- struct cras_alert* alert = cras_alert_create(prepare, 0);
- cras_alert_add_callback(alert, &callback1, NULL);
- ResetStub();
- cras_alert_pending(alert);
- EXPECT_EQ(0, cb1_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, prepare_called);
- EXPECT_EQ(1, cb1_called);
- cras_alert_destroy(alert);
-}
-
-TEST_F(Alert, TwoAlerts) {
- struct cras_alert* alert1 = cras_alert_create(prepare, 0);
- struct cras_alert* alert2 = cras_alert_create(prepare, 0);
- cras_alert_add_callback(alert1, &callback1, NULL);
- cras_alert_add_callback(alert2, &callback2, NULL);
-
- ResetStub();
- cras_alert_pending(alert1);
- EXPECT_EQ(0, cb1_called);
- EXPECT_EQ(0, cb2_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, prepare_called);
- EXPECT_EQ(1, cb1_called);
- EXPECT_EQ(0, cb2_called);
-
- ResetStub();
- cras_alert_pending(alert2);
- EXPECT_EQ(0, cb1_called);
- EXPECT_EQ(0, cb2_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(1, prepare_called);
- EXPECT_EQ(0, cb1_called);
- EXPECT_EQ(1, cb2_called);
-
- ResetStub();
- cras_alert_pending(alert1);
- cras_alert_pending(alert2);
- EXPECT_EQ(0, cb1_called);
- EXPECT_EQ(0, cb2_called);
- cras_alert_process_all_pending_alerts();
- EXPECT_EQ(2, prepare_called);
- EXPECT_EQ(1, cb1_called);
- EXPECT_EQ(1, cb2_called);
-
- cras_alert_destroy_all();
-}
-
-void callback1(void* arg, void* data) {
- cb1_called++;
- if (data)
- cb1_data.data = ((struct cb_data_struct*)data)->data;
-}
-
-void callback2(void* arg, void* data) {
- cb2_called++;
- if (cb2_set_pending) {
- cb2_set_pending = 0;
- cras_alert_pending((struct cras_alert*)arg);
- }
-}
-
-void prepare(struct cras_alert* alert) {
- prepare_called++;
- return;
-}
-
-} // namespace
-
-int main(int argc, char** argv) {
- ::testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
-}