queue: Add tests for queue flags

I remove the "on_queue_changed" callback in the flag handler functions,
so changes won't trigger a save until I can update later layers.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2014-04-26 11:00:44 -04:00
parent 78fe570e36
commit 35f19d98ef
4 changed files with 31 additions and 3 deletions

View File

@ -48,13 +48,11 @@ void Queue :: read(File &f)
void Queue :: set_flag(queue_flags f)
{
_flags |= f;
get_callbacks()->on_queue_changed();
}
void Queue :: unset_flag(queue_flags f)
{
_flags &= ~f;
get_callbacks()->on_queue_changed();
}
bool Queue :: has_flag(queue_flags f)

View File

@ -3,5 +3,4 @@
. $(dirname $0)/_functions
echo "Queue test"
./src/queue.run

View File

@ -21,6 +21,7 @@ void test_default()
{
TestQueue q;
test :: new_test("Queue Default Constructor Test");
test :: equal(q.get_cur(), (unsigned)-1);
test :: equal(q.get_flags(), (unsigned)0);
test :: equal(q.get_length(), (unsigned)0);
@ -32,16 +33,41 @@ void test_constructor(unsigned int flags)
{
TestQueue q(flags | (1 << 30));
test :: new_test("Queue Constructor Test");
test :: equal(q.get_cur(), (unsigned)-1);
test :: equal(q.get_flags(), flags);
test :: equal(q.get_length(), (unsigned)0);
test :: equal(q.get_sorder().size(), (size_t)0);
test :: equal(q.next(), (Track *)NULL);
test :: end();
}
void test_flags()
{
TestQueue q(0);
test :: new_test("Queue Flag Test");
test :: equal(q.get_flags(), (unsigned)0);
q.set_flag(Q_ENABLED);
test :: equal(q.get_flags(), (unsigned)Q_ENABLED);
q.unset_flag(Q_ENABLED);
test :: equal(q.get_flags(), (unsigned)0);
q.set_flag(Q_REPEAT);
q.set_flag(Q_RANDOM);
test :: equal(q.has_flag(Q_ENABLED), false);
test :: equal(q.has_flag(Q_RANDOM), true);
test :: equal(q.has_flag(Q_REPEAT), true);
test :: equal(q.has_flag(Q_NO_SORT), false);
test ::end();
}
int main(int argc, char **argv)
{
test_default();
test_constructor(Q_ENABLED | Q_RANDOM);
test_flags();
return 0;
}

View File

@ -23,6 +23,11 @@ namespace test
test_num++;
}
void end()
{
std::cout << std::endl;
}
template <class T>
void assert_equal(const T &lhs, const T &rhs)
{