8 main (int argc, gchar *argv[])
11 GstPadTemplate *padtempl;
15 gst_init (&argc, &argv);
18 iters = atoi (argv[1]);
22 g_print ("starting pad test\n");
25 pad = gst_pad_new ("padname", GST_PAD_SINK);
26 gst_object_unref (GST_OBJECT (pad));
27 g_print ("create/unref new pad %ld\n", vmsize()-usage1);
29 for (i=0; i<iters;i++) {
30 pad = gst_pad_new ("padname", GST_PAD_SINK);
31 gst_object_unref (GST_OBJECT (pad));
33 g_print ("create/unref %d pads %ld\n", iters, vmsize()-usage1);
35 pad = gst_pad_new ("padname", GST_PAD_SINK);
36 g_assert (GST_OBJECT_FLOATING (pad));
37 gst_object_ref (GST_OBJECT (pad));
38 gst_object_sink (GST_OBJECT (pad));
39 g_assert (!GST_OBJECT_FLOATING (pad));
40 gst_object_unref (GST_OBJECT (pad));
41 g_print ("create/ref/sink/unref new pad %ld\n", vmsize()-usage1);
43 for (i=0; i<iters;i++) {
44 pad = gst_pad_new ("padname", GST_PAD_SINK);
45 gst_object_ref (GST_OBJECT (pad));
46 gst_object_sink (GST_OBJECT (pad));
47 gst_object_unref (GST_OBJECT (pad));
49 g_print ("create/ref/sink/unref %d pads %ld\n", iters, vmsize()-usage1);
51 pad = gst_pad_new ("padname", GST_PAD_SINK);
52 g_assert (!GST_OBJECT_DESTROYED (pad));
53 gst_object_unref (GST_OBJECT (pad));
54 g_assert (GST_OBJECT_DESTROYED (pad));
55 gst_object_unref (GST_OBJECT (pad));
56 g_print ("create/destroy/unref pad %ld\n", vmsize()-usage1);
58 for (i=0; i<iters;i++) {
59 pad = gst_pad_new ("padname", GST_PAD_SINK);
60 gst_object_unref (GST_OBJECT (pad));
61 gst_object_unref (GST_OBJECT (pad));
63 g_print ("create/destroy/unref %d pads %ld\n", iters, vmsize()-usage1);
65 pad = gst_pad_new ("padname", GST_PAD_SINK);
66 gst_object_ref (GST_OBJECT (pad));
67 gst_object_unref (GST_OBJECT (pad));
68 gst_object_unref (GST_OBJECT (pad));
69 g_print ("create/ref/unref/unref pad %ld\n", vmsize()-usage1);
71 for (i=0; i<iters;i++) {
72 pad = gst_pad_new ("padname", GST_PAD_SINK);
73 gst_object_ref (GST_OBJECT (pad));
74 gst_object_unref (GST_OBJECT (pad));
75 gst_object_unref (GST_OBJECT (pad));
77 g_print ("create/ref/unref/unref %d pads %ld\n", iters, vmsize()-usage1);
79 pad = gst_pad_new ("padname", GST_PAD_SINK);
80 gst_object_ref (GST_OBJECT (pad));
81 gst_object_unref (GST_OBJECT (pad));
82 gst_object_unref (GST_OBJECT (pad));
83 gst_object_unref (GST_OBJECT (pad));
84 g_print ("create/ref/destroy/unref/unref pad %ld\n", vmsize()-usage1);
86 for (i=0; i<iters;i++) {
87 pad = gst_pad_new ("padname", GST_PAD_SINK);
88 gst_object_ref (GST_OBJECT (pad));
89 gst_object_unref (GST_OBJECT (pad));
90 gst_object_unref (GST_OBJECT (pad));
91 gst_object_unref (GST_OBJECT (pad));
93 g_print ("create/ref/destroy/unref/unref %d pads %ld\n", iters, vmsize()-usage1);
95 for (i=0; i<iters;i++) {
96 pad = gst_pad_new ("padname", GST_PAD_SINK);
97 gst_object_ref (GST_OBJECT (pad));
98 gst_pad_set_name (pad, "testing123");
99 gst_object_unref (GST_OBJECT (pad));
100 gst_pad_set_name (pad, "testing123");
101 gst_object_unref (GST_OBJECT (pad));
102 gst_object_unref (GST_OBJECT (pad));
104 g_print ("create/ref/destroy/unref/unref %d pads %ld with name\n", iters, vmsize()-usage1);
106 pad = gst_pad_new ("padname", GST_PAD_SINK);
107 for (i=0; i<iters;i++) {
108 gst_pad_set_name (pad, "testing");
110 gst_object_unref (GST_OBJECT (pad));
111 g_print ("set name %d times %ld\n", iters, vmsize()-usage1);
113 for (i=0; i<iters;i++) {
114 padtempl = gst_pad_template_new ("sink%d", GST_PAD_SINK, GST_PAD_SOMETIMES, NULL);
115 gst_object_unref (GST_OBJECT (padtempl));
117 g_print ("%d padtemplates create/unref %ld\n", iters, vmsize()-usage1);
119 for (i=0; i<iters;i++) {
120 padtempl = gst_pad_template_new ("sink%d", GST_PAD_SINK, GST_PAD_SOMETIMES, NULL);
121 pad = gst_pad_new_from_template (padtempl, "sink1");
122 gst_object_unref (GST_OBJECT (pad));
124 g_print ("%d pads create/unref from padtemplate %ld\n", iters, vmsize()-usage1);
126 g_print ("leaked: %ld\n", vmsize()-usage1);
128 return vmsize()-usage1;