Skip to content

Commit

Permalink
Merge pull request #608 from bugsnag/ndk-serializer-tests
Browse files Browse the repository at this point in the history
Add parameterised JSON serialisation tests for NDK serializer
  • Loading branch information
fractalwrench authored Oct 8, 2019
2 parents 340af19 + c540d27 commit 9ef0b05
Show file tree
Hide file tree
Showing 35 changed files with 1,079 additions and 194 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class AppMetaDataSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("app_meta_data_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class AppSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("app_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class BreadcrumbsSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("breadcrumbs_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class ContextSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("context_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class CustomMetaDataSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("custom_meta_data_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class DeviceMetaDataSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("device_meta_data_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class DeviceSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("device_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class ExceptionSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("exception_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class HandledStateSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("handled_state_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.bugsnag.android.ndk;

import static com.bugsnag.android.ndk.VerifyUtilsKt.verifyNativeRun;

import org.junit.Test;

public class NativeCXXTest {
Expand All @@ -13,8 +15,6 @@ public class NativeCXXTest {

@Test
public void testPassesNativeSuite() throws Exception {
if (run() != 0) {
throw new Exception("Check device logs for native test results");
}
verifyNativeRun(run());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.bugsnag.android.ndk

internal fun loadJson(resourceName: String) =
NativeCXXTest::class.java.classLoader!!.getResource(resourceName).readText()
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class SessionSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("session_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.bugsnag.android.ndk

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
import org.junit.runners.Parameterized.*

@RunWith(Parameterized::class)
internal class StackframeSerializationTest {

companion object {
init {
System.loadLibrary("bugsnag-ndk")
System.loadLibrary("bugsnag-ndk-test")
}

@JvmStatic
@Parameters
fun testCases() = 0..0
}

external fun run(testCase: Int, expectedJson: String): Int

@Parameter
lateinit var testCase: Number

@Test
fun testPassesNativeSuite() {
val expectedJson = loadJson("stackframe_serialization_$testCase.json")
verifyNativeRun(run(testCase.toInt(), expectedJson))
}
}
Loading

0 comments on commit 9ef0b05

Please sign in to comment.