Skip to content

Commit

Permalink
Tests: Add string array tests
Browse files Browse the repository at this point in the history
  • Loading branch information
badcel committed Apr 4, 2024
1 parent 032c303 commit b83105b
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 0 deletions.
52 changes: 52 additions & 0 deletions src/Native/GirTestLib/girtest-string-array-tester.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#include "girtest-string-array-tester.h"

/**
* GirTestStringArrayTester:
*
* Contains functions for testing bindings with string arrays.
*/

const char* data[] = { "FOO", "BAR", NULL };

struct _GirTestStringArrayTester
{
GObject parent_instance;
};

G_DEFINE_TYPE(GirTestStringArrayTester, girtest_string_array_tester, G_TYPE_OBJECT)

static void
girtest_string_array_tester_init(GirTestStringArrayTester *value)
{
}

static void
girtest_string_array_tester_class_init(GirTestStringArrayTesterClass *class)
{
}

/**
* girtest_string_array_tester_return_transfer_none:
*
* Returns an array.
*
* Returns: (transfer none): The array
*/
const char** girtest_string_array_tester_return_transfer_none()
{
return data;
}

/**
* girtest_string_array_tester_return_element_parameter_null_terminated_transfer_none:
* @data: (array zero-terminated=1) (element-type utf8) (transfer none): Array
* @position: The index to return
*
* Returns the string at the given position.
*
* Returns: (transfer full): The string of the array from the given position
*/
gchar* girtest_string_array_tester_return_element_parameter_null_terminated_transfer_none(const gchar** data, int position)
{
return g_strdup(data[position]);
}
14 changes: 14 additions & 0 deletions src/Native/GirTestLib/girtest-string-array-tester.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once

#include <glib-object.h>

G_BEGIN_DECLS

#define GIRTEST_TYPE_STRING_ARRAY_TESTER girtest_string_array_tester_get_type()

G_DECLARE_FINAL_TYPE(GirTestStringArrayTester, girtest_string_array_tester,
GIRTEST, STRING_ARRAY_TESTER, GObject)

const char** girtest_string_array_tester_return_transfer_none();
gchar* girtest_string_array_tester_return_element_parameter_null_terminated_transfer_none(const gchar** data, int position);
G_END_DECLS
1 change: 1 addition & 0 deletions src/Native/GirTestLib/girtest.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include "girtest-rename-to-tester.h"
#include "girtest-returning-signal-tester.h"
#include "girtest-signal-tester.h"
#include "girtest-string-array-tester.h"
#include "girtest-string-tester.h"
#include "girtest-typed-record-tester.h"
#include "girtest-untyped-record-tester.h"
Expand Down
2 changes: 2 additions & 0 deletions src/Native/GirTestLib/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ header_files = [
'girtest-rename-to-tester.h',
'girtest-returning-signal-tester.h',
'girtest-signal-tester.h',
'girtest-string-array-tester.h',
'girtest-string-tester.h',
'girtest-typed-record-tester.h',
'girtest-untyped-record-tester.h',
Expand All @@ -46,6 +47,7 @@ source_files = [
'girtest-rename-to-tester.c',
'girtest-returning-signal-tester.c',
'girtest-signal-tester.c',
'girtest-string-array-tester.c',
'girtest-string-tester.c',
'girtest-typed-record-tester.c',
'girtest-untyped-record-tester.c',
Expand Down
24 changes: 24 additions & 0 deletions src/Tests/Libs/GirTest-0.1.Tests/StringArrayTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace GirTest.Tests;

[TestClass, TestCategory("BindingTest")]
public class StringArrayTest : Test
{

[TestMethod]
public void ReturnNullTerminatedStringArrayTransferNone()
{
var array = new [] { "FOO", "BAR" };

Check warning on line 13 in src/Tests/Libs/GirTest-0.1.Tests/StringArrayTest.cs

View workflow job for this annotation

GitHub Actions / Build (Linux)

Fix formatting

Check warning on line 13 in src/Tests/Libs/GirTest-0.1.Tests/StringArrayTest.cs

View workflow job for this annotation

GitHub Actions / Build (Linux)

Fix formatting
StringArrayTester.ReturnTransferNone().Should().BeEquivalentTo(array);
}

[TestMethod]
public void ParameterNullTerminatedStringArrayTransferNone()
{
var array = new [] { "FOO", "BAR" };

Check warning on line 20 in src/Tests/Libs/GirTest-0.1.Tests/StringArrayTest.cs

View workflow job for this annotation

GitHub Actions / Build (Linux)

Fix formatting

Check warning on line 20 in src/Tests/Libs/GirTest-0.1.Tests/StringArrayTest.cs

View workflow job for this annotation

GitHub Actions / Build (Linux)

Fix formatting
StringArrayTester.ReturnElementParameterNullTerminatedTransferNone(array, 0).Should().Be(array[0]);
StringArrayTester.ReturnElementParameterNullTerminatedTransferNone(array, 1).Should().Be(array[1]);
}
}

0 comments on commit b83105b

Please sign in to comment.