[gstreamermm: 103/167] added Bin tests
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gstreamermm: 103/167] added Bin tests
- Date: Tue, 3 Sep 2013 19:27:43 +0000 (UTC)
commit 55758b0f83288856ccd699ed648ebfd223d60817
Author: Marcin Kolny at Flytronic <marcin kolny flytronic pl>
Date: Wed Jul 31 16:57:18 2013 +0200
added Bin tests
.gitignore | 1 +
tests/Makefile | 20 ++++++
tests/test-bin.cc | 129 +++++++++++++++++++++++++++++++++++
tests/{buffer.cc => test-buffer.cc} | 2 +-
4 files changed, 151 insertions(+), 1 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 4850a4f..dbf47d9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -464,6 +464,7 @@ gstreamer/src/xvimagesink.hg
#tests/
tests/test-all
+!tests/Makefile
# old-tests/
old-tests/test-buffer-mapinfo
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 0000000..4d46b27
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,20 @@
+CXX=g++
+MODULES=gstreamermm-1.0
+CXXFLAGS=-c -std=c++0x
+CXXFLAGS+=$(shell pkg-config --cflags $(MODULES))
+LDFLAGS = -lgtest -lpthread
+LDFLAGS+=$(shell pkg-config --libs $(MODULES))
+SRC = $(wildcard *.cc)
+OBJ = $(SRC:.cc=.o)
+EXEC = test-all
+
+all: $(SRC) $(EXEC)
+
+$(EXEC): $(OBJ)
+ $(CXX) $(OBJ) -o $@ $(LDFLAGS)
+
+%.cpp%.o:
+ $(CXX) $(CXXFLAGS) $< -o $@
+
+clean:
+ rm -rf *.o $(EXEC)
diff --git a/tests/test-bin.cc b/tests/test-bin.cc
new file mode 100644
index 0000000..7e0560f
--- /dev/null
+++ b/tests/test-bin.cc
@@ -0,0 +1,129 @@
+/*
+ * test-bin.cc
+ *
+ * Created on: Jul 31, 2013
+ * Author: m.kolny
+ */
+
+#include <gtest/gtest.h>
+#include <gstreamermm.h>
+#include <string>
+
+using namespace Gst;
+using Glib::RefPtr;
+
+class BinTest : public ::testing::Test
+{
+protected:
+ RefPtr<Bin> bin;
+ static constexpr gchar* element_name = "source";
+ static constexpr gchar* default_element = "fakesrc";
+
+ virtual void SetUp()
+ {
+ bin = Bin::create("sample-bin");
+ }
+
+ RefPtr<Element> AddElementToBin(const gchar* element_name = default_element, const gchar* name =
element_name)
+ {
+ RefPtr<Element> element = ElementFactory::create_element(element_name, name);
+
+ bin->add(element);
+
+ return element;
+ }
+};
+
+
+TEST_F(BinTest, CreatingBin)
+{
+ ASSERT_TRUE(bin);
+}
+
+
+TEST_F(BinTest, GetElementFromBin)
+{
+ AddElementToBin();
+
+ RefPtr<Element> source_copy = bin->get_element(element_name);
+
+ ASSERT_TRUE(source_copy);
+}
+
+TEST_F(BinTest, GetNonExistingElement)
+{
+ AddElementToBin();
+
+ RefPtr<Element> source_copy = bin->get_element("element-with-this-name-cannot-exists-in-bin");
+
+ ASSERT_FALSE(source_copy);
+}
+
+TEST_F(BinTest, RemoveElementFromBin)
+{
+ AddElementToBin();
+
+ RefPtr<Element> source = bin->get_element(element_name);
+
+ bin->remove(source);
+
+ RefPtr<Element> source_copy = bin->get_element(element_name);
+
+ ASSERT_FALSE(source_copy);
+}
+
+TEST_F(BinTest, FindElementInParentBin)
+{
+ RefPtr<Bin> bin_child = Bin::create();
+
+ AddElementToBin();
+
+ bin->add(bin_child);
+
+ RefPtr<Element> source = bin_child->get_element_recurse_up(element_name);
+
+ ASSERT_TRUE(source);
+}
+
+TEST_F(BinTest, AddTwoElementsWithTheSameName)
+{
+ AddElementToBin();
+
+ EXPECT_ANY_THROW(AddElementToBin());
+}
+
+TEST_F(BinTest, FindUnlinkedPad)
+{
+ AddElementToBin();
+ AddElementToBin("fakesink", "sink");
+
+ RefPtr<Pad> pad_sink = bin->find_unlinked_pad(PAD_SINK);
+ RefPtr<Pad> pad_src = bin->find_unlinked_pad(PAD_SRC);
+
+ ASSERT_TRUE(pad_sink);
+ ASSERT_TRUE(pad_src);
+}
+
+TEST_F(BinTest, FindUnlinkedPadWhenElementsAreLinked)
+{
+ RefPtr<Element> src = AddElementToBin();
+ RefPtr<Element> sink = AddElementToBin("fakesink", "sink");
+
+ src->link(sink);
+
+ RefPtr<Pad> pad_sink = bin->find_unlinked_pad(PAD_SINK);
+ RefPtr<Pad> pad_src = bin->find_unlinked_pad(PAD_SRC);
+
+ ASSERT_FALSE(pad_sink);
+ ASSERT_FALSE(pad_src);
+}
+
+TEST_F(BinTest, GetCorrectChildNumber)
+{
+ int element_count = 5;
+
+ for (int i =0; i < element_count; i++)
+ AddElementToBin("fakesrc", std::string(std::string("element") + std::to_string(i)).c_str());
+
+ EXPECT_EQ(element_count, bin->get_num_children());
+}
diff --git a/tests/buffer.cc b/tests/test-buffer.cc
similarity index 97%
rename from tests/buffer.cc
rename to tests/test-buffer.cc
index 78af9bb..efab5e1 100644
--- a/tests/buffer.cc
+++ b/tests/test-buffer.cc
@@ -1,5 +1,5 @@
/*
- * buffer.cc
+ * test-buffer.cc
*
* Created on: Jul 31, 2013
* Author: m.kolny
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]