コード例 #1
0
extern void main(void)
{
	OSStatus err;
	OSStatus junk;
	
	err = InitOpenTransportInContext(kInitOTForApplicationMask, NULL);
	if (err == noErr) {
		err = OTRegisterAsClientInContext("\pOTClassicContextTest", DummyNotifier, NULL);
		if (err == noErr) {
			err = TransferTest();
			if (err == noErr) {
				err = MemTest();
			}
			if (err == noErr) {
				err = OpenTest();
			}
			if (err == noErr) {
				err = TaskTest();
			}
			if (err == noErr) {
				err = StreamTest();
			}
			
			junk = OTUnregisterAsClientInContext(NULL);
			assert(junk == noErr);
		}
		CloseOpenTransportInContext(NULL);
	}
コード例 #2
0
void __EXIT(){
//&<<&    #ifdef _ENABLE_LOGGING_
  #ifdef _ENABLE_LOGGING_
      DoLog("void __EXIT(){ \n");
  #endif
//&>>&1 0 1 6
    char *s;
    FILE *fRunScript,*filelist;

    s=MFileName(EXECUTER_FILENAME);
    fRunScript=fopen(s,"w"); MemTest(fRunScript!=0);
    delete s;

    PutCurDir(fRunScript);
    while(mmm_LineClipboard && mmm_LineClipboard->prev)
        mmm_LineClipboard=mmm_LineClipboard->prev;
    while(mmm_LineClipboard && mmm_LineClipboard->next){
        mmm_LineClipboard->Write(fRunScript,FILE_ASCII);
        mmm_LineClipboard=mmm_LineClipboard->next;
        }
    PutCurDir(fRunScript);
    fclose(fRunScript);

    s=MFileName("__mmm__.mmm");
    filelist=fopen(s,"w"); MemTest(filelist!=0);
    delete s;
    PerformExitingFromFiles(filelist);
    fclose(filelist);

    chmod(MFileName(EXECUTER_FILENAME), 0755 );
//&<<&    #ifdef _ENABLE_LOGGING_
  #ifdef _ENABLE_LOGGING_
      DoLog("    } exit(-1)...\n");
  #endif
//&>>&1 0 1 6
    system(MFileName(EXECUTER_FILENAME));
    exit(-1);
}
コード例 #3
0
ファイル: FinalTest.cpp プロジェクト: snoplus/penn_daq2
int FinalTest(int crateNum, uint32_t slotMask, uint32_t testMask, int skip)
{

  int updateDB = 1;
  lprintf("*** Starting Final Test ****************\n");

  JsonNode *ftDocs[16];
  char comments[1000];
  memset(comments,'\0',1000);
  int errors;
  // initialize the crate
  errors = CrateInit(crateNum,slotMask,1,0,0,0,0,0,0,0,0);
  if (errors){
    lprintf("Problem initializing the crate, exiting final test\n");
    return -1;
  }

  errors = MTCInit(1); 
  if (errors){
    lprintf("Problem intializing the mtcd, exiting final test\n");
  }

  lprintf("----------------------------------------\n");
  lprintf("If any boards could not initialize properly, type \"quit\" now "
      "to exit the test.\n Otherwise hit enter to continue.\n");
  contConnection->GetInput(comments,1000);
  if (strncmp("quit",comments,4) == 0){
    lprintf("Exiting final test\n");
    lprintf("****************************************\n");
    return 0;
  }

  for (int i=0;i<16;i++){
    if ((0x1<<i) & slotMask){
      GetNewID(finalTestIDs[crateNum][i]);
      ftDocs[i] = json_mkobject();
    }
  }

  lprintf("Now starting board_id\n");
  BoardID(crateNum,slotMask);
  lprintf("----------------------------------------\n");

  if (!skip && updateDB){
    for (int i=0;i<16;i++){
      if ((0x1<<i) & slotMask){
        lprintf("Please enter any comments for slot %i motherboard now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"fec_comments",json_mkstring(comments));
        lprintf("Has this slot been refurbished? (y/n)\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"refurbished",json_mkbool(comments[0] == 'y'));
        lprintf("Has this slot been cleaned? (y/n)\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"cleaned",json_mkbool(comments[0] == 'y'));
        lprintf("Time to measure resistance across analog outs and cmos address lines. For the cmos address lines"
            "it's easier if you do it during the fifo mod\n");
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"analog_out_res",json_mkstring(comments));
        lprintf("Please enter any comments for slot %i db 0 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db0_comments",json_mkstring(comments));
        lprintf("Please enter any comments for slot %i db 1 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db1_comments",json_mkstring(comments));
        lprintf("Please enter any comments for slot %i db 2 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db2_comments",json_mkstring(comments));
        lprintf("Please enter any comments for slot %i db 3 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db3_comments",json_mkstring(comments));
        lprintf("Please enter dark matter measurements for slot %i db 0 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db0_dark_matter",json_mkstring(comments));
        lprintf("Please enter dark matter measurements for slot %i db 1 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db1_dark_matter",json_mkstring(comments));
        lprintf("Please enter dark matter measurements for slot %i db 2 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db2_dark_matter",json_mkstring(comments));
        lprintf("Please enter dark matter measurements for slot %i db 3 now.\n",i);
        contConnection->GetInput(comments);
        json_append_member(ftDocs[i],"db3_dark_matter",json_mkstring(comments));
      }
    }


    lprintf("Enter N100 DC offset\n");
    contConnection->GetInput(comments);
    for (int i=0;i<16;i++){
      if ((0x1<<i) & slotMask){
        json_append_member(ftDocs[i],"dc_offset_n100",json_mkstring(comments));
      }
    }
    lprintf("Enter N20 DC offset\n");
    contConnection->GetInput(comments);
    for (int i=0;i<16;i++){
      if ((0x1<<i) & slotMask){
        json_append_member(ftDocs[i],"dc_offset_n20",json_mkstring(comments));
      }
    }
    lprintf("Enter esum hi DC offset\n");
    contConnection->GetInput(comments);
    for (int i=0;i<16;i++){
      if ((0x1<<i) & slotMask){
        json_append_member(ftDocs[i],"dc_offset_esumhi",json_mkstring(comments));
      }
    }
    lprintf("Enter esum lo DC offset\n");
    contConnection->GetInput(comments);
    for (int i=0;i<16;i++){
      if ((0x1<<i) & slotMask){
        json_append_member(ftDocs[i],"dc_offset_esumlo",json_mkstring(comments));
      }
    }

    lprintf("Thank you. Please hit enter to continue with the rest of final test. This may take a while.\n");
    contConnection->GetInput(comments);
  }

  // update the database
  if (updateDB){
  for (int i=0;i<16;i++){
    if ((0x1<<i) & slotMask){
      json_append_member(ftDocs[i],"type",json_mkstring("final_test"));
      PostDebugDocWithID(crateNum, i, finalTestIDs[crateNum][i], ftDocs[i]);
    }
  }
  }

  lprintf("----------------------------------------\n");

  int testCounter = 0;

  if ((0x1<<testCounter) & testMask)
    FECTest(crateNum,slotMask,updateDB,1);
  testCounter++;

  if ((0x1<<testCounter) & testMask)
    VMon(crateNum,slotMask,updateDB,1);
  testCounter++;
  if ((0x1<<testCounter) & testMask)
    CGTTest(crateNum,slotMask,0xFFFFFFFF,updateDB,1);
  testCounter++;
  CrateInit(crateNum,slotMask,1,0,0,0,0,0,0,0,0);
  if ((0x1<<testCounter) & testMask)
    PedRun(crateNum,slotMask,0xFFFFFFFF,0,DEFAULT_GT_DELAY,DEFAULT_PED_WIDTH,50,1000,300,updateDB,0,1);
  testCounter++;
  CrateInit(crateNum,slotMask,1,0,0,0,0,0,0,0,0);
  MTCInit(1);
  if ((0x1<<testCounter) & testMask)
    CrateCBal(crateNum,slotMask,0xFFFFFFFF,updateDB,1);
  testCounter++;

  lprintf("----------------------------------------\n");

  // load cbal values now
  CrateInit(crateNum,slotMask,0,1,0,0,0,0,0,0,0);

  if ((0x1<<testCounter) & testMask)
    PedRun(crateNum,slotMask,0xFFFFFFFF,0,DEFAULT_GT_DELAY,DEFAULT_PED_WIDTH,50,1000,300,updateDB,1,1);
  testCounter++;

  if ((0x1<<testCounter) & testMask)
    ChinjScan(crateNum,slotMask,0xFFFFFFFF,0,DEFAULT_GT_DELAY,DEFAULT_PED_WIDTH,10,5000,400,1,1,updateDB,1);
  testCounter++;
  if ((0x1<<testCounter) & testMask)
    SetTTot(crateNum,slotMask,400,updateDB,1);
  testCounter++;

  // load cbal and ttot values now
  CrateInit(crateNum,slotMask,0,1,0,1,0,0,0,0,0);

  if ((0x1<<testCounter) & testMask)
    GetTTot(crateNum,slotMask,390,updateDB,1);
  testCounter++;
  if ((0x1<<testCounter) & testMask)
    DiscCheck(crateNum,slotMask,500000,updateDB,1);
  testCounter++;
  uint32_t slotMasks[MAX_XL3_CON];
  for (int ic=0;ic<MAX_XL3_CON;ic++)
    slotMasks[ic] = slotMask;
  if ((0x1<<testCounter) & testMask)
    GTValidTest((0x1)<<crateNum,slotMasks,0xFFFFFFFF,400,0,0,updateDB,0,1);
  testCounter++;

  CrateInit(crateNum,slotMask,1,0,0,0,0,0,0,0,0);
  
  if ((0x1<<testCounter) & testMask)
    ZDisc(crateNum,slotMask,10000,0,updateDB,0,1,0);
  testCounter++;

  MTCInit(0);
  CrateInit(crateNum,slotMask,1,0,0,0,0,0,0,0,0);

  if ((0x1<<testCounter) & testMask)
    MbStabilityTest(crateNum,slotMask,50,updateDB,1);
  testCounter++;
  if ((0x1<<testCounter) & testMask)
    FifoTest(crateNum,slotMask,updateDB,1);
  testCounter++;

  // load alternate xilinx
  CrateInit(crateNum,slotMask,2,0,0,0,0,0,0,0,0);

  if ((0x1<<testCounter) & testMask)
    CaldTest(crateNum,slotMask,3500,750,200,1,updateDB,1);
  testCounter++;

  for (int i=0;i<16;i++){
    if ((0x1<<i) & slotMask){
      CrateInit(crateNum,slotMask,1,0,0,0,0,0,0,0,0); 
      if ((0x1<<testCounter) & testMask)
        MemTest(crateNum,i,updateDB,1);
    }
  }
  testCounter++;

  CrateInit(crateNum,slotMask,1,0,0,0,0,0,0,0,0);

  if ((0x1<<testCounter) & testMask){
    lprintf("Ready for see_refl test. Hit enter to enable triggers and continue or quit to skip and finish.\n\a");

    contConnection->GetInput(comments);
    if (strncmp("quit",comments,4) != 0){
      SeeReflection(crateNum,slotMask,0xFFFFFFFF,255,1000,updateDB,0,1);
    }
  }

  CrateInit(crateNum,slotMask,0,0,0,0,0,0,0,0);

  lprintf("----------------------------------------\n");
  lprintf("Final Test finished!\n");
  lprintf("****************************************\n");
  return 0;
}
コード例 #4
0
ファイル: test.c プロジェクト: jamjr/Helios-NG
int test( hydra_conf config )
{
	unsigned long *mem_ptr;
	unsigned long i, j, k, sram_size;
	unsigned long fail_addr, failed=FALSE;
	unsigned long parms[3], dram, g_sram=0xc0000000, length=0x4000;
	MemTestStruct MemTestResults;


	dram = config.l_dram_base;

	c40_printf( "\n\n" );

	LED( RED, OFF, config );
	LED( GREEN, OFF, config );

	/* Test DRAM */
	c40_printf( "Testing DRAM .... " );
	if( !MemTest( 0x8d000000, config.dram_size*0x100000, &MemTestResults ) )
	{
		c40_printf( "Failed at address %x\n\n\n", MemTestResults.FailAddress );
		LED( RED, ON, config );
		writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
		return( 0 );
	}
	else
		c40_printf( "Passed\n" );

	c40_printf( "Testing processor 1 ....\n" );
	/* Test outer SRAM */
	c40_printf( "   Global SRAM ... " );
	parms[0] = g_sram;
	parms[1] = dram;
	parms[2] = length;
	copy( parms );
	if( !MemTest( 0xc0000000, config.sram1_size*1024, &MemTestResults ) )
	{
		parms[0] = dram;
		parms[1] = g_sram;
		parms[2] = length;
		copy( parms );
		c40_printf( "Failed at address %x\n\n\n", MemTestResults.FailAddress );
		LED( RED, ON, config );
		writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
		failed = TRUE;
	}
	else
	{
		parms[0] = dram;
		parms[1] = g_sram;
		parms[2] = length;
		copy( parms );

		c40_printf( "Passed\n" );
	}


	/* Test other 3 DSP's */

	if( !CommFlush( config, DSP_2 ) )
	{
		c40_printf( "Error booting DSP 2.\nAborting testing.\n" );
		writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
		return( 0 );
	}
	if( config.daughter )
	{
		if( !CommFlush( config, DSP_3 ) )
		{
			c40_printf( "Error booting DSP 3.\nAborting testing.\n" );
			writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
			return( 0 );
		}
		if( !CommFlush( config, DSP_4 ) )
		{
			c40_printf( "Error booting DSP 4.\nAborting testing.\n" );
			writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
			return( 0 );
		}
	}

	reset_others( config, DSP_2 );
	if( config.daughter )
	{
		reset_others( config, DSP_3 );
		reset_others( config, DSP_4 );
	}

	/* Boot other processor(s) with boot code from EPROM */
	c40_printf( "Booting other processor%s ... ", config.daughter?"s":"" );
	if( i = BootOthers( DSP_2 ) )
	{
		c40_printf( "Failed booting processor 2\n\n\n", i );
		LED( RED, ON, config );
		failed = TRUE;
		writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
		return(0);
	}
	else
	{
		/* Indicate that test will be performed */
		comm_sen( DSP_2, YES, NumTries );
	}
	
	if( config.daughter )
	{
		if( i = BootOthers( DSP_3 ) )
		{
			c40_printf( "Failed booting processor 3\n\n\n" );
			LED( RED, ON, config );
			failed = TRUE;
			writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
			return(0);
		}
		else
		{
			/* Indicate that test will be performed */
			comm_sen( DSP_3, YES, NumTries );
		}

		if( i = BootOthers( DSP_4 ) )
		{
			c40_printf( "Failed booting processor 4\n\n\n" );
			LED( RED, ON, config );
			failed = TRUE;
			writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
			return(0);
		}
		else
		{
			/* Indicate that test will be performed */
			comm_sen( DSP_4, YES, NumTries );
		}
	}
	c40_printf( "Successful\n" );	

	/* Test Comm port connections on the Hydra card */
/*
	c40_printf( "Testing Comm Ports ... " );
	if( !CommTest( config ) )
	{
		c40_printf( "Failed\n" );
		LED( RED, ON, config );
		writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
/*		failed = TRUE;
	}
	else
		c40_printf( "Passed\n" );
*/

	if( config.daughter )
		k = 3;
	else
		k = 1;
	/* Test memory on other processor(s) */
	for( i=0 ; i < k ; i++ )
	{
		/* Send DRAM size and base address */
		if( !comm_sen( i, config.l_dram_base, NumTries ) )
			return( FAILURE );
		if( !comm_sen( i, config.dram_size, NumTries ) )
			return( FAILURE );

		c40_printf( "Testing DRAM from DSP %d ... ", 2+i );
		if( !comm_rec( i, &fail_addr, NumTries ) )
		{
			c40_printf( "\n   DSP %d communication time out.\n", 2+i );
			fail_addr = 0;
		}
		if( fail_addr )
		{
			failed = TRUE;
			c40_printf( "Failed\n     Failed at address %x.\n", fail_addr );
			writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
		}
		else
			c40_printf( "Passed\n" );

		for( j=0 ; j < 2 ; j++ )
		{
			c40_printf( "Testing %s SRAM on DSP %d ... ", j?"local":"global", 2+i );
			switch( i )
			{
				case 0 :
					comm_sen( 0, config.sram2_size, NumTries );
					break;
				case 1 :
					comm_sen( 1, config.sram3_size, NumTries );
					break;
				case 2 :
					comm_sen( 2, config.sram4_size, NumTries );
					break;
			}
			if( !comm_rec( i, &fail_addr, NumTries ) )
			{
				c40_printf( "\n   DSP %d communication time out.\n", 2+i );
				fail_addr = 0;
			}
			if( fail_addr )
			{
				failed = TRUE;
				c40_printf( "Failed\n     Failed at address %x.\n", fail_addr );
				writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
			}
			else
				c40_printf( "Passed\n" );
		}
	}

	c40_printf( "\n\n" );

	if( failed )
	{
		/* Indicate failure */
		LED( GREEN, OFF, config );
		LED( RED, ON, config );		
		c40_printf( "\n\n" );
		writeVIC( 0x7b, readVIC(0x7b) | 0x40 );  /* Assert SYSFAIL */
		return( 0 );
	}
	else
	{
		/* Indicate success */
		LED( GREEN, ON, config );
		LED( RED, OFF, config );
		return( 1 );
	}
}