Просмотр исходного кода

Patch from Xinwei Hu to clean up test locking program.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1556 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake 17 лет назад
Родитель
Сommit
0ed0469113
1 измененных файлов с 33 добавлено и 10 удалено
  1. 33 10
      test/testlck.c

+ 33 - 10
test/testlck.c

@@ -70,6 +70,7 @@ void testLckLockGrantCallback (
 }
 
 SaLckLockIdT pr_lock_id;
+SaLckLockIdT pr_lock_async_id;
 
 void testLckLockWaiterCallback (
         SaLckWaiterSignalT waiterSignal,
@@ -82,7 +83,7 @@ void testLckLockWaiterCallback (
 		modeHeld,
 		modeRequested,
 		(unsigned long long)lockId);
-	printf ("pr lock id %llu\n", (unsigned long long)pr_lock_id);
+	printf ("pr lock id %llu\n", (unsigned long long)pr_lock_async_id);
 	result = saLckResourceUnlockAsync (
 		25,
 		lockId);
@@ -107,8 +108,12 @@ SaLckCallbacksT callbacks = {
 SaVersionT version = { 'B', 1, 1 };
 
 void setSaNameT (SaNameT *name, char *str) {
-	name->length = strlen (str);
-	memcpy (name->value, str, name->length);
+	strncpy ((char *)name->value, str, SA_MAX_NAME_LENGTH);
+	if (strlen ((char *)name->value) > SA_MAX_NAME_LENGTH) {
+		name->length = SA_MAX_NAME_LENGTH;
+	} else {
+		name->length = strlen (str);
+	}
 }
 
 void sigintr_handler (int signum) {
@@ -150,14 +155,14 @@ int main (void) {
 	th_data.handle = handle;
 	pthread_create (&dispatch_thread, NULL, th_dispatch, &th_data);
 
-	setSaNameT (&resource_name, "test_resource");
 	setSaNameT (&resource_name_async, "test_resource_async");
 
+	setSaNameT (&resource_name, "not_existingaabb");
 	result = saLckResourceOpen (
 		handle,
 		&resource_name,
-		SA_LCK_RESOURCE_CREATE,
-//		0,
+//		SA_LCK_RESOURCE_CREATE,
+		0,
 		SA_TIME_ONE_SECOND,
 		&resource_handle);
 	printf ("saLckResourceOpen %d (should be 12)\n", result);
@@ -165,6 +170,7 @@ int main (void) {
 	result = saLckResourceClose (resource_handle);
 	printf ("saLckResourceClose %d (should be 9)\n", result);
 
+	setSaNameT (&resource_name, "test_resource");
 	result = saLckResourceOpen (
 		handle,
 		&resource_name,
@@ -175,7 +181,7 @@ int main (void) {
 
 	result = saLckResourceOpenAsync (
 		handle,
-		0x56,
+		(SaInvocationT)0x56,
 		&resource_name_async,
 		SA_LCK_RESOURCE_CREATE);
 	printf ("saLckResourceOpenAsync %d (should be 1)\n", result);
@@ -191,6 +197,22 @@ int main (void) {
 	printf ("saLckResourceLock PR %d (should be 1)\n", result);
 	printf ("status %d\n", status);
 
+	result = saLckResourceUnlock (
+		pr_lock_id,
+		SA_TIME_END);
+	printf ("saLckResourceUnlock result %d (should be 1)\n", result);
+
+	result = saLckResourceLock (
+			resource_handle,
+			&pr_lock_id,
+			SA_LCK_PR_LOCK_MODE,
+			SA_LCK_LOCK_ORPHAN,
+			55,
+			SA_TIME_END,
+			&status);
+	printf ("saLckResourceLock PR %d (should be 1)\n", result);
+	printf ("status %d\n", status);
+
 	result = saLckResourceLock (
 		resource_handle,
 		&ex_lock_id,
@@ -203,9 +225,9 @@ int main (void) {
 	printf ("status %d\n", status);
 		
 	result = saLckResourceLockAsync (
-		resource_handle,
+		resource_handle_async,
 		0x56,
-		&pr_lock_id,
+		&pr_lock_async_id,
 		SA_LCK_PR_LOCK_MODE,
 		0,
 		55);
@@ -220,7 +242,8 @@ int main (void) {
 			break;
 		}
 	} while (result);
-
+	
+	printf ("Starting saLckResourceUnlock\n");
 	result = saLckResourceUnlock (
 		ex_lock_id,
 		SA_TIME_END);