Alexandre Julliard : oleaut32/tests: Store the test typelib in resources instead of depending on an external file .
Alexandre Julliard
julliard at winehq.org
Fri Apr 25 08:11:05 CDT 2008
Module: wine
Branch: master
Commit: c76de89885c4c8cd97204d5e09b22ca0e3588b02
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c76de89885c4c8cd97204d5e09b22ca0e3588b02
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Apr 25 12:09:03 2008 +0200
oleaut32/tests: Store the test typelib in resources instead of depending on an external file.
---
dlls/oleaut32/tests/tmarshal.rc | 3 +++
dlls/oleaut32/tests/typelib.c | 30 +++++++++++++++++++++++++++++-
2 files changed, 32 insertions(+), 1 deletions(-)
diff --git a/dlls/oleaut32/tests/tmarshal.rc b/dlls/oleaut32/tests/tmarshal.rc
index 30c2a9b..707895f 100644
--- a/dlls/oleaut32/tests/tmarshal.rc
+++ b/dlls/oleaut32/tests/tmarshal.rc
@@ -29,3 +29,6 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
/* @makedep: tmarshal.tlb */
1 TYPELIB LOADONCALL DISCARDABLE tmarshal.tlb
+
+/* @makedep: test_tlb.tlb */
+2 TYPELIB LOADONCALL DISCARDABLE test_tlb.tlb
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c
index a30b275..74a7812 100644
--- a/dlls/oleaut32/tests/typelib.c
+++ b/dlls/oleaut32/tests/typelib.c
@@ -1337,13 +1337,41 @@ static void test_dump_typelib(const char *name)
#endif
+static const char *create_test_typelib(void)
+{
+ static char filename[MAX_PATH];
+ HANDLE file;
+ HRSRC res;
+ void *ptr;
+ DWORD written;
+
+ GetTempFileNameA( ".", "tlb", 0, filename );
+ file = CreateFile( filename, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0 );
+ ok( file != INVALID_HANDLE_VALUE, "file creation failed\n" );
+ if (file == INVALID_HANDLE_VALUE) return NULL;
+ res = FindResource( GetModuleHandle(0), MAKEINTRESOURCE(2), "TYPELIB" );
+ ok( res != 0, "couldn't find resource\n" );
+ ptr = LockResource( LoadResource( GetModuleHandle(0), res ));
+ WriteFile( file, ptr, SizeofResource( GetModuleHandle(0), res ), &written, NULL );
+ ok( written == SizeofResource( GetModuleHandle(0), res ), "couldn't write resource\n" );
+ CloseHandle( file );
+ return filename;
+}
+
START_TEST(typelib)
{
+ const char *filename;
+
ref_count_test(wszStdOle2);
test_TypeComp();
test_CreateDispTypeInfo();
test_TypeInfo();
test_QueryPathOfRegTypeLib();
test_inheritance();
- test_dump_typelib("test_tlb.tlb");
+
+ if ((filename = create_test_typelib()))
+ {
+ test_dump_typelib( filename );
+ DeleteFile( filename );
+ }
}
More information about the wine-cvs
mailing list