1717 * You should have received a copy of the GNU Lesser General Public License
1818 * along with gstreamer-java. If not, see <http://www.gnu.org/licenses/>.
1919 */
20-
2120package org .freedesktop .gstreamer ;
2221
23- import static org .junit .Assert .assertEquals ;
22+ import static org .junit .Assert .* ;
2423
2524import org .freedesktop .gstreamer .glib .Natives ;
2625import org .freedesktop .gstreamer .util .TestAssumptions ;
2726import org .junit .AfterClass ;
2827import org .junit .BeforeClass ;
29- import org .junit .Ignore ;
3028import org .junit .Test ;
3129
3230public class SampleTest {
@@ -36,59 +34,71 @@ public SampleTest() {
3634
3735 @ BeforeClass
3836 public static void setUpClass () throws Exception {
39- Gst .init (Gst .getVersion (), "SampleTest" );
37+ Gst .init (Gst .getVersion (), "SampleTest" );
4038 }
41-
39+
4240 @ AfterClass
4341 public static void tearDownClass () throws Exception {
4442 Gst .deinit ();
4543 }
4644
4745 @ Test
48- @ Ignore
49- // @TODO for some reason this test is unreliable on GitHub Actions.
5046 public void testGetCaps () {
51- SampleTester .test ((Sample sample ) -> {
52- Caps caps = sample .getCaps ();
53- Structure struct = caps .getStructure (0 );
54- String name = struct .getName ();
55- assertEquals ("video/x-raw" , name );
56- });
47+ SampleTester .test ((Sample sample ) -> {
48+ Caps caps = sample .getCaps ();
49+ Structure struct = caps .getStructure (0 );
50+ String name = struct .getName ();
51+ assertEquals ("video/x-raw" , name );
52+ });
5753 }
5854
5955 @ Test
6056 public void testGetBuffer () {
61- SampleTester .test ((Sample sample ) -> {
62- Buffer buffer = sample .getBuffer ();
63- assertEquals (1 , buffer .getMemoryCount ());
64- });
57+ SampleTester .test ((Sample sample ) -> {
58+ Buffer buffer = sample .getBuffer ();
59+ assertEquals (1 , buffer .getMemoryCount ());
60+ });
61+ }
62+
63+ @ Test
64+ public void testSetBuffer () {
65+ // since gst 1.16, the sample is recycled and keep a reference on the last buffer received
66+ TestAssumptions .requireGstVersion (1 , 16 );
67+
68+ SampleTester .test ((Sample sample ) -> {
69+
70+ Buffer buffer = sample .getBuffer ();
71+
72+ int refCount = buffer .getRefCount ();
73+
74+ assertEquals (2 , sample .getRefCount ());
75+
76+ // make sample writable
77+ Natives .unref (sample );
78+
79+ // force sample to release the buffer
80+ sample .setBuffer (null );
81+
82+ Natives .ref (sample );
83+
84+ assertEquals (2 , sample .getRefCount ());
85+
86+ assertEquals (refCount - 1 , buffer .getRefCount ());
87+ });
6588 }
66-
89+
6790 @ Test
68- public void testSetBuffer () {
69- // since gst 1.16, the sample is recycled and keep a reference on the last buffer received
70- TestAssumptions .requireGstVersion (1 , 16 );
71-
72- SampleTester .test ((Sample sample ) -> {
73-
74- Buffer buffer = sample .getBuffer ();
75-
76- int refCount = buffer .getRefCount ();
77-
78- assertEquals (2 , sample .getRefCount ());
79-
80- // make sample writable
81- Natives .unref (sample );
82-
83- // force sample to release the buffer
84- sample .setBuffer (null );
85-
86- Natives .ref (sample );
87-
88- assertEquals (2 , sample .getRefCount ());
89-
90- assertEquals (refCount -1 , buffer .getRefCount ());
91- });
91+ public void testSampleTester () {
92+ try {
93+ SampleTester .test (sample -> {
94+ throw new IllegalStateException ();
95+ });
96+ } catch (Throwable t ) {
97+ assertTrue (t instanceof AssertionError );
98+ assertTrue (t .getCause () instanceof IllegalStateException );
99+ return ;
100+ }
101+ fail ("No exception thrown" );
92102 }
93-
103+
94104}
0 commit comments