Fixes in liveliness test lease_duration_zero_or_one
Signed-off-by: Dennis Potman <dennis.potman@adlinktech.com>
This commit is contained in:
		
							parent
							
								
									9410753076
								
							
						
					
					
						commit
						02c2753bd7
					
				
					 1 changed files with 15 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -218,9 +218,9 @@ static void test_pmd_count(dds_liveliness_kind_t kind, uint32_t ldur, double mul
 | 
			
		|||
  /* End-start should be mult - 1 under ideal circumstances, but consider the test successful
 | 
			
		||||
	   when at least 50% of the expected PMD's was sent. This checks that the frequency for sending
 | 
			
		||||
	   PMDs was increased when the writer was added. */
 | 
			
		||||
  CU_ASSERT(end_seqno - start_seqno >= (kind == DDS_LIVELINESS_AUTOMATIC ? (50 * (mult - 1)) / 100 : 0))
 | 
			
		||||
  CU_ASSERT_FATAL(end_seqno - start_seqno >= (kind == DDS_LIVELINESS_AUTOMATIC ? (50 * (mult - 1)) / 100 : 0))
 | 
			
		||||
  if (kind != DDS_LIVELINESS_AUTOMATIC)
 | 
			
		||||
    CU_ASSERT(get_pmd_seqno(g_pub_participant) - start_seqno < mult)
 | 
			
		||||
    CU_ASSERT_FATAL(get_pmd_seqno(g_pub_participant) - start_seqno < mult)
 | 
			
		||||
 | 
			
		||||
  /* cleanup */
 | 
			
		||||
  if (remote_reader)
 | 
			
		||||
| 
						 | 
				
			
			@ -1097,14 +1097,18 @@ static void lease_duration_zero_or_one_impl (dds_duration_t sleep, dds_livelines
 | 
			
		|||
  CU_ASSERT_FATAL(rc == DDS_RETCODE_OK);
 | 
			
		||||
 | 
			
		||||
  /* verify the reader received all samples */
 | 
			
		||||
  void *raw[] = { &sample };
 | 
			
		||||
  dds_sample_info_t si;
 | 
			
		||||
  uint32_t cnt = 0;
 | 
			
		||||
  do
 | 
			
		||||
  {
 | 
			
		||||
    void *raw[] = { &sample };
 | 
			
		||||
    dds_sample_info_t si;
 | 
			
		||||
    uint32_t cnt = 0;
 | 
			
		||||
    while (dds_take(reader, raw, &si, 1, 1) == 1)
 | 
			
		||||
    rc = dds_waitset_wait(waitset, NULL, 0, DDS_SECS(5));
 | 
			
		||||
    CU_ASSERT_FATAL(rc >= 1);
 | 
			
		||||
    while (dds_take(reader, raw, &si, 1, 1) == 1 && si.valid_data)
 | 
			
		||||
      cnt++;
 | 
			
		||||
    CU_ASSERT(cnt == nsamples + 1);
 | 
			
		||||
  }
 | 
			
		||||
  while (cnt < nsamples + 1);
 | 
			
		||||
  CU_ASSERT_FATAL(cnt == nsamples + 1);
 | 
			
		||||
 | 
			
		||||
  /* transition to not alive is not necessarily immediate */
 | 
			
		||||
  {
 | 
			
		||||
| 
						 | 
				
			
			@ -1115,8 +1119,8 @@ static void lease_duration_zero_or_one_impl (dds_duration_t sleep, dds_livelines
 | 
			
		|||
 | 
			
		||||
    ddsrt_mutex_lock (&listener_state.lock);
 | 
			
		||||
    printf("early w0 %"PRIx64" alive %"PRId32" not-alive %"PRId32"\n", listener_state.w0_handle, listener_state.w0_alive, listener_state.w0_not_alive);
 | 
			
		||||
    CU_ASSERT(!listener_state.weirdness);
 | 
			
		||||
    CU_ASSERT(listener_state.w0_handle != 0);
 | 
			
		||||
    CU_ASSERT_FATAL(!listener_state.weirdness);
 | 
			
		||||
    CU_ASSERT_FATAL(listener_state.w0_handle != 0);
 | 
			
		||||
    while (listener_state.w0_not_alive < listener_state.w0_alive && retries-- > 0)
 | 
			
		||||
    {
 | 
			
		||||
      ddsrt_mutex_unlock(&listener_state.lock);
 | 
			
		||||
| 
						 | 
				
			
			@ -1128,7 +1132,7 @@ static void lease_duration_zero_or_one_impl (dds_duration_t sleep, dds_livelines
 | 
			
		|||
 | 
			
		||||
    printf("late liveliness changed status: alive %"PRId32" not-alive %"PRId32"\n", lstatus.alive_count, lstatus.not_alive_count);
 | 
			
		||||
    printf("final w0 %"PRIx64" alive %"PRId32" not-alive %"PRId32"\n", listener_state.w0_handle, listener_state.w0_alive, listener_state.w0_not_alive);
 | 
			
		||||
    CU_ASSERT(listener_state.w0_alive == listener_state.w0_not_alive);
 | 
			
		||||
    CU_ASSERT_FATAL(listener_state.w0_alive == listener_state.w0_not_alive);
 | 
			
		||||
    uint32_t exp_alive;
 | 
			
		||||
    if (sleep == 0)
 | 
			
		||||
      exp_alive = 1; /* if not sleeping, it's ok if the transition happens only once */
 | 
			
		||||
| 
						 | 
				
			
			@ -1137,7 +1141,7 @@ static void lease_duration_zero_or_one_impl (dds_duration_t sleep, dds_livelines
 | 
			
		|||
    else
 | 
			
		||||
      exp_alive = nsamples - nsamples / 5; /* if sleeping, expect the vast majority (80%) of the writes to toggle liveliness */
 | 
			
		||||
    printf("check w0_alive %d >= %d\n", listener_state.w0_alive, exp_alive);
 | 
			
		||||
    CU_ASSERT(listener_state.w0_alive >= exp_alive);
 | 
			
		||||
    CU_ASSERT_FATAL(listener_state.w0_alive >= exp_alive);
 | 
			
		||||
    ddsrt_mutex_unlock(&listener_state.lock);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue