summaryrefslogtreecommitdiff
path: root/tests/structs/gvalue.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/structs/gvalue.vala')
-rw-r--r--tests/structs/gvalue.vala19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/structs/gvalue.vala b/tests/structs/gvalue.vala
index c17c9d9c9..927db0304 100644
--- a/tests/structs/gvalue.vala
+++ b/tests/structs/gvalue.vala
@@ -55,10 +55,29 @@ bool make_bool () {
return true;
}
+struct FooStruct {
+ public int i;
+}
+
+void test_try_cast_value () {
+ FooStruct s = { 42 };
+ Value vs = s;
+
+ FooStruct s2 = (FooStruct) vs;
+ assert (s2.i == 42);
+
+ string[] sarray = { "hello", "vala", "world" };
+ Value va = sarray;
+
+ string[] sarray2 = (string[]) va;
+ assert (sarray[1] == "vala");
+}
+
void main () {
test_value ();
test_value_array ();
test_nullable_value ();
test_nullable_value_array ();
take_value (make_bool ());
+ test_try_cast_value ();
}