File: objc_bridge.m

package info (click to toggle)
gnustep-corebase 0.1.1%2B20230710-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,608 kB
  • sloc: ansic: 25,359; objc: 4,347; cpp: 75; xml: 49; makefile: 24; sh: 7
file content (45 lines) | stat: -rw-r--r-- 1,060 bytes parent folder | download
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
#import <Foundation/NSString.h>
#include "CoreFoundation/CFString.h"
#include "../CFTesting.h"

void refcounting_tests(void);
void basic_ops(void);

int main (void)
{
	refcounting_tests();
	basic_ops();
	return 0;
}

void refcounting_tests(void)
{
  NSString *str;
  CFStringRef str2;
  
  str = (NSString*)CFSTR("test");
  PASS_CF ([str retainCount] == UINT_MAX,
    "Constant string has maximum retain count.");
  [str release];
  PASS_CF ([str retainCount] == UINT_MAX,
    "Release has no effect of constant string.");
  
  str2 = CFStringCreateWithBytes (NULL, "Test2", 6, kCFStringEncodingASCII, 0);
  [str2 retain];
  PASS_CF ([str2 retainCount] == 2,
    "CFStringRef instances accept -retain method calls");
}

void basic_ops(void)
{
	NSString* str = [NSString stringWithString: (NSString *) CFSTR("Hello world!")];

	PASS_CF([str isEqual: @"Hello world!"],
		"NSString stringWithString accepts a CFStringRef");

	PASS_CF(CFStringCompare((CFStringRef) str, CFSTR("Hello world!"), 0) == 0,
		"CFStringCompare accepts an NSString");

	[str release];
}