| Comment: | Add ObjFWTest
So far, it only discovers all tests and runs them and doesn't do much |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | objfwtest |
| Files: | files | file ages | folders |
| SHA3-256: |
10f006be3783a5ca98719c493c8d481a |
| User & Date: | js on 2024-02-05 20:42:09 |
| Other Links: | branch diff | manifest | tags |
|
2024-02-05
| ||
| 22:05 | • Ticket [183b9d19a8] Testing framework for 3rd party software depending on ObjFW status still Open with 3 other changes (artifact: 14b447aca0 user: js) | |
|
2024-02-06
| ||
| 21:27 | Fix compiling ObjFWTest as .framework on macOS (check-in: e96d4372a0 user: js tags: objfwtest) | |
|
2024-02-05
| ||
| 20:42 | Add ObjFWTest (check-in: 10f006be37 user: js tags: objfwtest) | |
| 20:01 | bridge: Rename define for local includes (check-in: f927a98bcc user: js tags: trunk) | |
Modified .fossil-settings/clean-glob from [e3e476a774] to [97c41e980e].
| ︙ | ︙ | |||
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | generators/unicode/gen_tables src/Info.plist src/bridge/Info.plist src/libobjfw.* src/objfw-defs.h src/runtime/Info.plist src/runtime/libobjfwrt.* src/tls/Info.plist tests/DerivedData tests/EBOOT.PBP tests/Info.plist tests/PARAM.SFO tests/objc_sync/objc_sync tests/plugin/Info.plist tests/subprocess/subprocess | > > > | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | generators/unicode/gen_tables src/Info.plist src/bridge/Info.plist src/libobjfw.* src/objfw-defs.h src/runtime/Info.plist src/runtime/libobjfwrt.* src/test/Info.plist src/test/libobjfwtest.* src/tls/Info.plist src/tls/libobjfwtls.* tests/DerivedData tests/EBOOT.PBP tests/Info.plist tests/PARAM.SFO tests/objc_sync/objc_sync tests/plugin/Info.plist tests/subprocess/subprocess |
| ︙ | ︙ |
Modified .fossil-settings/ignore-glob from [a531885e00] to [fae5c41137].
| ︙ | ︙ | |||
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | generators/unicode/gen_tables src/Info.plist src/bridge/Info.plist src/libobjfw.* src/objfw-defs.h src/runtime/Info.plist src/runtime/libobjfwrt.* src/tls/Info.plist tests/DerivedData tests/EBOOT.PBP tests/Info.plist tests/PARAM.SFO tests/iOS.xcodeproj/*.pbxuser tests/iOS.xcodeproj/project.xcworkspace tests/iOS.xcodeproj/xcuserdata | > > > | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | generators/unicode/gen_tables src/Info.plist src/bridge/Info.plist src/libobjfw.* src/objfw-defs.h src/runtime/Info.plist src/runtime/libobjfwrt.* src/test/Info.plist src/test/libobjfwtest.* src/tls/Info.plist src/tls/libobjfwtls.* tests/DerivedData tests/EBOOT.PBP tests/Info.plist tests/PARAM.SFO tests/iOS.xcodeproj/*.pbxuser tests/iOS.xcodeproj/project.xcworkspace tests/iOS.xcodeproj/xcuserdata |
| ︙ | ︙ |
Modified .gitignore from [6d829dc2af] to [ecb2a6c378].
| ︙ | ︙ | |||
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | generators/unicode/gen_tables src/Info.plist src/bridge/Info.plist src/libobjfw.* src/objfw-defs.h src/runtime/Info.plist src/runtime/libobjfwrt.* src/tls/Info.plist tests/DerivedData tests/EBOOT.PBP tests/Info.plist tests/PARAM.SFO tests/iOS.xcodeproj/*.pbxuser tests/iOS.xcodeproj/project.xcworkspace tests/iOS.xcodeproj/xcuserdata | > > > | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | generators/unicode/gen_tables src/Info.plist src/bridge/Info.plist src/libobjfw.* src/objfw-defs.h src/runtime/Info.plist src/runtime/libobjfwrt.* src/test/Info.plist src/test/libobjfwtest.* src/tls/Info.plist src/tls/libobjfwtls.* tests/DerivedData tests/EBOOT.PBP tests/Info.plist tests/PARAM.SFO tests/iOS.xcodeproj/*.pbxuser tests/iOS.xcodeproj/project.xcworkspace tests/iOS.xcodeproj/xcuserdata |
| ︙ | ︙ |
Modified configure.ac from [c1b4a8e04b] to [dcf22b00ec].
| ︙ | ︙ | |||
398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 |
AC_ARG_ENABLE(shared,
AS_HELP_STRING([--disable-shared], [do not build shared library]))
AS_IF([test x"$enable_shared" != x"no"], [
BUILDSYS_SHARED_LIB
BUILDSYS_PLUGIN
AC_SUBST(OBJFW_SHARED_LIB, '${LIB_PREFIX}objfw${LIB_SUFFIX}')
AC_SUBST(EXCEPTIONS_LIB_A, "exceptions.lib.a")
AC_SUBST(FORWARDING_LIB_A, "forwarding.lib.a")
AC_SUBST(LOOKUP_ASM_LIB_A, "lookup-asm.lib.a")
BUILDSYS_FRAMEWORK([
AC_SUBST(OBJFW_FRAMEWORK, "ObjFW.framework")
build_framework="yes"
])
], [
AC_DEFINE(OF_NO_SHARED, 1, [Whether no shared library was built])
AC_SUBST(LIBOBJFW_DEP, "../src/libobjfw.a")
AC_SUBST(LIBOBJFW_DEP_LVL2, "../../src/libobjfw.a")
])
| > > | 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 |
AC_ARG_ENABLE(shared,
AS_HELP_STRING([--disable-shared], [do not build shared library]))
AS_IF([test x"$enable_shared" != x"no"], [
BUILDSYS_SHARED_LIB
BUILDSYS_PLUGIN
AC_SUBST(OBJFW_SHARED_LIB, '${LIB_PREFIX}objfw${LIB_SUFFIX}')
AC_SUBST(OBJFWTEST_SHARED_LIB, '${LIB_PREFIX}objfwtest${LIB_SUFFIX}')
AC_SUBST(EXCEPTIONS_LIB_A, "exceptions.lib.a")
AC_SUBST(FORWARDING_LIB_A, "forwarding.lib.a")
AC_SUBST(LOOKUP_ASM_LIB_A, "lookup-asm.lib.a")
BUILDSYS_FRAMEWORK([
AC_SUBST(OBJFW_FRAMEWORK, "ObjFW.framework")
AC_SUBST(OBJFWTEST_FRAMEWORK, "ObjFWTest.framework")
build_framework="yes"
])
], [
AC_DEFINE(OF_NO_SHARED, 1, [Whether no shared library was built])
AC_SUBST(LIBOBJFW_DEP, "../src/libobjfw.a")
AC_SUBST(LIBOBJFW_DEP_LVL2, "../../src/libobjfw.a")
])
|
| ︙ | ︙ | |||
427 428 429 430 431 432 433 434 435 436 437 438 439 440 | AC_ARG_ENABLE(static, AS_HELP_STRING([--enable-static], [build static library])) AS_IF([test x"$enable_shared" = x"no"], [ enable_static="yes" ]) AS_IF([test x"$enable_static" = x"yes"], [ AC_SUBST(OBJFW_STATIC_LIB, "libobjfw.a") AC_SUBST(EXCEPTIONS_A, "exceptions.a") AC_SUBST(FORWARDING_A, "forwarding.a") AC_SUBST(LOOKUP_ASM_A, "lookup-asm.a") ]) AC_DEFINE_UNQUOTED(PLUGIN_SUFFIX, "$PLUGIN_SUFFIX", [Suffix for plugins]) AS_IF([test x"$enable_files" != x"no" -a x"$PLUGIN_SUFFIX" != x""], [ | > | 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 | AC_ARG_ENABLE(static, AS_HELP_STRING([--enable-static], [build static library])) AS_IF([test x"$enable_shared" = x"no"], [ enable_static="yes" ]) AS_IF([test x"$enable_static" = x"yes"], [ AC_SUBST(OBJFW_STATIC_LIB, "libobjfw.a") AC_SUBST(OBJFWTEST_STATIC_LIB, "libobjfwtest.a") AC_SUBST(EXCEPTIONS_A, "exceptions.a") AC_SUBST(FORWARDING_A, "forwarding.a") AC_SUBST(LOOKUP_ASM_A, "lookup-asm.a") ]) AC_DEFINE_UNQUOTED(PLUGIN_SUFFIX, "$PLUGIN_SUFFIX", [Suffix for plugins]) AS_IF([test x"$enable_files" != x"no" -a x"$PLUGIN_SUFFIX" != x""], [ |
| ︙ | ︙ | |||
2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 | AC_SUBST(TESTS_LIBS) AC_CONFIG_FILES([ buildsys.mk extra.mk src/Info.plist tests/Info.plist utils/objfw-config ]) AC_CONFIG_HEADERS([config.h src/objfw-defs.h]) AC_OUTPUT AS_IF([test x"$old_compiler" = x"yes"], [ | > | 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 | AC_SUBST(TESTS_LIBS) AC_CONFIG_FILES([ buildsys.mk extra.mk src/Info.plist src/test/Info.plist tests/Info.plist utils/objfw-config ]) AC_CONFIG_HEADERS([config.h src/objfw-defs.h]) AC_OUTPUT AS_IF([test x"$old_compiler" = x"yes"], [ |
| ︙ | ︙ |
Modified extra.mk.in from [6ed0317cce] to [70364e1e07].
| ︙ | ︙ | |||
23 24 25 26 27 28 29 30 31 32 33 34 35 36 | OBJFWTLS_SHARED_LIB = @OBJFWTLS_SHARED_LIB@ OBJFWTLS_STATIC_LIB = @OBJFWTLS_STATIC_LIB@ OBJFWTLS_FRAMEWORK = @OBJFWTLS_FRAMEWORK@ OBJFWTLS_LIB_MAJOR = 1 OBJFWTLS_LIB_MINOR = 0 OBJFWTLS_LIB_PATCH = 2 BIN_PREFIX = @BIN_PREFIX@ BRIDGE = @BRIDGE@ CVINCLUDE_INLINE_H = @CVINCLUDE_INLINE_H@ ENCODINGS_A = @ENCODINGS_A@ ENCODINGS_LIB_A = @ENCODINGS_LIB_A@ ENCODINGS_SRCS = @ENCODINGS_SRCS@ | > > > > > > > | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | OBJFWTLS_SHARED_LIB = @OBJFWTLS_SHARED_LIB@ OBJFWTLS_STATIC_LIB = @OBJFWTLS_STATIC_LIB@ OBJFWTLS_FRAMEWORK = @OBJFWTLS_FRAMEWORK@ OBJFWTLS_LIB_MAJOR = 1 OBJFWTLS_LIB_MINOR = 0 OBJFWTLS_LIB_PATCH = 2 OBJFWTEST_SHARED_LIB = @OBJFWTEST_SHARED_LIB@ OBJFWTEST_STATIC_LIB = @OBJFWTEST_STATIC_LIB@ OBJFWTEST_FRAMEWORK = @OBJFWTEST_FRAMEWORK@ OBJFWTEST_LIB_MAJOR = 1 OBJFWTEST_LIB_MINOR = 0 OBJFWTEST_LIB_PATCH = 0 BIN_PREFIX = @BIN_PREFIX@ BRIDGE = @BRIDGE@ CVINCLUDE_INLINE_H = @CVINCLUDE_INLINE_H@ ENCODINGS_A = @ENCODINGS_A@ ENCODINGS_LIB_A = @ENCODINGS_LIB_A@ ENCODINGS_SRCS = @ENCODINGS_SRCS@ |
| ︙ | ︙ |
Modified src/Makefile from [2a28ea8f9c] to [faa3d6a6cb].
1 2 3 |
include ../extra.mk
SUBDIRS = ${RUNTIME} exceptions encodings forwarding
| | | 1 2 3 4 5 6 7 8 9 10 11 |
include ../extra.mk
SUBDIRS = ${RUNTIME} exceptions encodings forwarding
SUBDIRS_AFTER = ${BRIDGE} ${TLS} test
DISTCLEAN = Info.plist objfw-defs.h
SHARED_LIB = ${OBJFW_SHARED_LIB}
STATIC_LIB = ${OBJFW_STATIC_LIB}
FRAMEWORK = ${OBJFW_FRAMEWORK}
LIB_MAJOR = ${OBJFW_LIB_MAJOR}
LIB_MINOR = ${OBJFW_LIB_MINOR}
|
| ︙ | ︙ |
Added src/test/Info.plist.in version [55211c1360].
> > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleExecutable</key> <string>ObjFWTest</string> <key>CFBundleName</key> <string>ObjFWTest</string> <key>CFBundleIdentifier</key> <string>im.nil.objfw.test</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundlePackageType</key> <string>FMWK</string> <key>CFBundleVersion</key> <string>@BUNDLE_VERSION@</string> <key>CFBundleShortVersionString</key> <string>@BUNDLE_SHORT_VERSION@</string> <key>MinimumOSVersion</key> <string>9.0</string> </dict> </plist> |
Added src/test/Makefile version [0936343937].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
include ../../extra.mk
DISTCLEAN = Info.plist
SHARED_LIB = ${OBJFWTEST_SHARED_LIB}
STATIC_LIB = ${OBJFWTEST_STATIC_LIB}
FRAMEWORK = ${OBJFWTEST_FRAMEWORK}
LIB_MAJOR = ${OBJFWTEST_LIB_MAJOR}
LIB_MINOR = ${OBJFWTEST_LIB_MINOR}
LIB_PATCH = ${OBJFWTEST_LIB_PATCH}
SRCS = OTTestCase.m
INCLUDES := ${SRCS:.m=.h} \
ObjFWTest.h
SRCS += OTAppDelegate.m
includesubdir = ObjFWTest
include ../../buildsys.mk
CPPFLAGS += -I. \
-I.. \
-I../.. \
-I../exceptions \
-I../runtime \
-DOBJFWTEST_LOCAL_INCLUDES
LD = ${OBJC}
FRAMEWORK_LIBS := -F.. -framework ObjFW ${LIBS}
LIBS := -L.. -lobjfw -L../runtime ${RUNTIME_LIBS} ${LIBS}
install-extra:
i=ObjFWTest.oc; \
${INSTALL_STATUS}; \
if ${MKDIR_P} ${libdir}/objfw-config && ${INSTALL} -m 644 $$i ${libdir}/objfw-config/$$i; then \
${INSTALL_OK}; \
else \
${INSTALL_FAILED}; \
fi
uninstall-extra:
i=ObjFWTest.oc; \
if test -f ${libdir}/objfw-config/$$i; then \
if rm -f ${libdir}/objfw-config/$$i; then \
${DELETE_OK}; \
else \
${DELETE_FAILED}; \
fi \
fi; \
rmdir ${libdir}/objfw-config >/dev/null 2>&1 || true
|
Added src/test/OTAppDelegate.h version [64bf862003].
> > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /* * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in * the packaging of this file. * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFApplication.h" OF_ASSUME_NONNULL_BEGIN @interface OTAppDelegate: OFObject <OFApplicationDelegate> @end OF_ASSUME_NONNULL_END |
Added src/test/OTAppDelegate.m version [36e6efa285].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
/*
* Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* Alternatively, it may be distributed under the terms of the GNU General
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#include "config.h"
#import "OTAppDelegate.h"
#import "OFSet.h"
#import "OFValue.h"
#import "OTTestCase.h"
OF_APPLICATION_DELEGATE(OTAppDelegate)
@implementation OTAppDelegate
- (OFSet OF_GENERIC(Class) *)testClasses
{
Class *classes = objc_copyClassList(NULL);
OFMutableSet *testClasses;
if (classes == NULL)
return nil;
@try {
testClasses = [OFMutableSet set];
for (Class *iter = classes; *iter != Nil; iter++)
if ([*iter isSubclassOfClass: [OTTestCase class]])
[testClasses addObject: *iter];
} @finally {
OFFreeMemory(classes);
}
[testClasses removeObject: [OTTestCase class]];
[testClasses makeImmutable];
return testClasses;
}
- (OFSet OF_GENERIC(OFValue *) *)testsInClass: (Class)class
{
Method *methods = class_copyMethodList(class, NULL);
OFMutableSet *tests;
if (methods == NULL)
return nil;
@try {
tests = [OFMutableSet set];
for (Method *iter = methods; *iter != NULL; iter++) {
SEL selector = method_getName(*iter);
if (selector == NULL)
continue;
if (strncmp(sel_getName(selector), "test", 4) == 0)
[tests addObject:
[OFValue valueWithPointer: selector]];
}
} @finally {
OFFreeMemory(methods);
}
[tests makeImmutable];
return tests;
}
- (void)applicationDidFinishLaunching: (OFNotification *)notification
{
OFSet OF_GENERIC(Class) *testClasses = [self testClasses];
for (Class class in testClasses) {
for (OFValue *test in [self testsInClass: class]) {
void *pool = objc_autoreleasePoolPush();
OTTestCase *instance =
[[[class alloc] init] autorelease];
[instance setUp];
[instance performSelector: test.pointerValue];
[instance tearDown];
objc_autoreleasePoolPop(pool);
}
}
[OFApplication terminate];
}
@end
|
Added src/test/OTTestCase.h version [65a29e60d8].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | /* * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in * the packaging of this file. * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #ifdef OBJFWTEST_LOCAL_INCLUDES # import "OFObject.h" #else # import <ObjFW/OFObject.h> #endif OF_ASSUME_NONNULL_BEGIN /** * @class OTTestCase OTTestCase.h ObjFWTest/OTTestCase.h */ @interface OTTestCase: OFObject - (void)setUp; - (void)tearDown; @end OF_ASSUME_NONNULL_END |
Added src/test/OTTestCase.m version [3c3d45f200].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/*
* Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* Alternatively, it may be distributed under the terms of the GNU General
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#include "config.h"
#import "OTTestCase.h"
@implementation OTTestCase: OFObject
- (void)setUp
{
}
- (void)tearDown
{
}
@end
|
Added src/test/ObjFWTest.h version [92263f43ba].
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /* * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in * the packaging of this file. * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OTTestCase.h" |
Added src/test/ObjFWTest.oc version [9b450b95b7].
> > > | 1 2 3 | package_format 1 LIBS="-lobjfwtest $LIBS" FRAMEWORK_LIBS="-framework ObjFWTest $FRAMEWORK_LIBS" |