blob: 3023816d38f51f44427ff567f7bf257c48f8adea [file] [log] [blame]
// Copyright 2022 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 "libmems/common_types.h"
#include "libmems/test_fakes.h"
namespace libmems {
namespace {
class IioEventTestOnMatchMaskWithParam
: public ::testing::TestWithParam<std::tuple<iio_chan_type,
iio_event_type,
iio_event_direction,
int,
uint64_t,
bool>> {
protected:
void SetUp() override {
event_ = std::make_unique<libmems::fakes::FakeIioEvent>(
std::get<0>(GetParam()), std::get<1>(GetParam()),
std::get<2>(GetParam()), std::get<3>(GetParam()));
}
std::unique_ptr<libmems::fakes::FakeIioEvent> event_;
};
TEST_P(IioEventTestOnMatchMaskWithParam, MatchMask) {
EXPECT_EQ(event_->MatchMask(std::get<4>(GetParam())),
std::get<5>(GetParam()));
}
INSTANTIATE_TEST_SUITE_P(
IioEventTestOnMatchMaskWithParamRun,
IioEventTestOnMatchMaskWithParam,
::testing::Values(
std::make_tuple(iio_chan_type::IIO_PROXIMITY,
iio_event_type::IIO_EV_TYPE_THRESH,
iio_event_direction::IIO_EV_DIR_EITHER,
0,
0,
false),
std::make_tuple(iio_chan_type::IIO_PROXIMITY,
iio_event_type::IIO_EV_TYPE_THRESH,
iio_event_direction::IIO_EV_DIR_EITHER,
0,
IioEventCode(iio_chan_type::IIO_PROXIMITY,
iio_event_type::IIO_EV_TYPE_MAG,
iio_event_direction::IIO_EV_DIR_EITHER,
0),
false),
std::make_tuple(iio_chan_type::IIO_PROXIMITY,
iio_event_type::IIO_EV_TYPE_THRESH,
iio_event_direction::IIO_EV_DIR_EITHER,
0,
IioEventCode(iio_chan_type::IIO_PROXIMITY,
iio_event_type::IIO_EV_TYPE_THRESH,
iio_event_direction::IIO_EV_DIR_EITHER,
0),
true),
std::make_tuple(iio_chan_type::IIO_PROXIMITY,
iio_event_type::IIO_EV_TYPE_THRESH,
iio_event_direction::IIO_EV_DIR_EITHER,
0,
IioEventCode(iio_chan_type::IIO_PROXIMITY,
iio_event_type::IIO_EV_TYPE_THRESH,
iio_event_direction::IIO_EV_DIR_RISING,
0),
true)));
} // namespace
} // namespace libmems