示例#1
0
   void TerminarTeste( void )
   {

      FILE * pArqAcumula   = NULL ;
      int numMassasTeste   = 0 ;
      int numCasosTeste    = 0 ;
      int numCmdExecutados = 0 ;
      int numLinhasLidas   = 0 ;
      int numFalhas        = 0 ;

      /* Fechar o arquivo de script */

         LER_TerminarLeitura( ) ;

      /* Acumular os resultados dos testes */

         if ( NomeArquivoAcumulador[ 0 ] != 0 )
         {

            if ( TST_ObterInicioExtensao( NomeArquivoAcumulador ) == NULL )
            {
               strcat( NomeArquivoAcumulador , DEFAULT_EXT_ACUM ) ;
            } /* if */

            pArqAcumula = fopen( NomeArquivoAcumulador , "r" ) ;
            if ( pArqAcumula != 0 )
            {
               fscanf( pArqAcumula , " %d %d %d %d %d" ,
                            &numMassasTeste , &numCmdExecutados ,
                            &numCasosTeste  , &numLinhasLidas   ,
                            &numFalhas ) ;
               fclose( pArqAcumula ) ;
            } /* if */

            numMassasTeste   ++ ;
            numCasosTeste    += ContaCasosTeste ;
            numCmdExecutados += ContaComandosExecutados ;
            numLinhasLidas   += LER_ObterNumLinhas( ) ;
            numFalhas        += ContaFalhas ;

            pArqAcumula = fopen( NomeArquivoAcumulador , "w" ) ;
            if ( pArqAcumula != 0 )
            {
               fprintf( pArqAcumula , "  %d  %d  %d  %d  %d" ,
                            numMassasTeste  , numCmdExecutados ,
                            numCasosTeste   , numLinhasLidas   ,
                            numFalhas ) ;
               fclose( pArqAcumula ) ;
            } /* if */

         } /* fim ativa: Acumular os resultados dos testes */

      /* Exibir os resultados do teste */

         ExibirResultados( pArqLog ) ;

         if ( pArqLog != stdout )
         {
            ExibirResultados( stdout ) ;
         } /* if */

         fprintf( pArqLog , "\n\n!!! Numero de espacos ainda alocados: %d",
                  CED_ObterNumeroEspacosAlocados( ) ) ;

      /* Fechar o arquivo de log */

         if ( pArqLog != stdout )
         {

            fprintf( pArqLog , "\n" ) ;
            fclose(  pArqLog ) ;
            pArqLog = stdout ;
            NomeArqLog[ 0 ] = 0 ;

         } /* fim ativa: Fechar o arquivo de log */

   } /* Fim função: TSTG -Terminar a execução do módulo de teste */
TST_tpCondRet TST_EfetuarComando(char * ComandoTeste)
{
	PILHA_tpCondRet CondRetRecebida;
	PILHA_tpCondRet CondRetEsperada;

	CAR_tpCarta CartaDada;
	CAR_tpCarta CartaObtida;

	int acao;
	int nElem;
	int NumLidos = -1;
	int PosicaoPilha = -1;
	int numeroPilha = -1;

	char FaceEsperada = 'V';
	char FaceObtida = 'E';
	char FaceDada;

	char NaipeEsperado = 'A';
	char NaipeObtido = 'E';
	char NaipeDado = 'O';

	char PosicaoEsperada = '1';
	char PosicaoObtida = '2';
	char PosicaoDada = '4';
	
	int numAlocAnt = CED_ObterNumeroEspacosAlocados();

	/* Testar PILHA criarPilha */

	if (strcmp(ComandoTeste, CRIAR_PILHA_CMD) == 0)
	{

		NumLidos = LER_LerParametros("ii", &numeroPilha, &CondRetEsperada);

		if (NumLidos != 2 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		CondRetRecebida = PILHA_criarPilha(&nPilhas[numeroPilha]);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao criar a Pilha.");

	} /* fim ativa: Testar PILHA criarPilha */

	/* Testar PILHA liberaPilha */

	else if (strcmp(ComandoTeste, LIBERA_PILHA_CMD) == 0)
	{

		NumLidos = LER_LerParametros("ii", &numeroPilha, &CondRetEsperada);

		if (NumLidos != 2 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		CondRetRecebida = PILHA_liberaPilha(nPilhas[numeroPilha]);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao destruir a Pilha");

	} /* fim ativa: Testar PILHA liberaPilha */

	/* Testar PILHA num elem */
	else if (strcmp(ComandoTeste, RETORNA_NUM_ELEM_CMD) == 0)
	{
		NumLidos = LER_LerParametros("ii", &numeroPilha, &CondRetEsperada);
		if (NumLidos != 2 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		CondRetRecebida = PILHA_retornaNumElem(nPilhas[numeroPilha], &nElem);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao saber a quantidade de cartas da Pilha");
	}

	/* Testar PILHA pushPilha */

	else if (strcmp(ComandoTeste, PUSH_PILHA_CMD) == 0)
	{
		char naipe;
		char posicao;
		char face;

		NumLidos = LER_LerParametros("iccci", &numeroPilha, &FaceDada, &NaipeDado, &PosicaoDada, &CondRetEsperada);

		if (NumLidos != 5 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */
		CAR_criarCarta(&CartaDada);
		CAR_editarCarta(CartaDada, FaceDada, NaipeDado, PosicaoDada);

		CondRetRecebida = PILHA_pushPilha(nPilhas[numeroPilha], CartaDada);


		//(CAR_tpCarta)LIS_ObterValor(nPilhas[numeroPilha], &CartaDada);
		CAR_retornaFace(CartaDada, &face);
		CAR_retornaNaipe(CartaDada, &naipe);
		CAR_retornaPosicao(CartaDada, &posicao);
		printf("Carta Push: %c %c %c", face, naipe, posicao);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao push a Pilha.");

	} /* fim ativa: Testar PILHA pushPilha  */

	/* Testar PILHA popPilha */

	else if (strcmp(ComandoTeste, POP_PILHA_CMD) == 0)
	{

		NumLidos = LER_LerParametros("ii", &numeroPilha, &CondRetEsperada);

		if (NumLidos != 2 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		CondRetRecebida = PILHA_popPilha(nPilhas[numeroPilha], &CartaObtida);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao pop a pilha.");


	} /* fim ativa: Testar PILHA popPilha */

	/* Testar PILHA verificaPilhaVazia */
	else if (strcmp(ComandoTeste, VERIFICA_PILHA_CMD) == 0)
	{

		NumLidos = LER_LerParametros("ii", &numeroPilha, &CondRetEsperada);

		if (NumLidos != 2 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		CondRetRecebida = PILHA_verificaPilhaVazia(nPilhas[numeroPilha]);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao verificar a Pilha");

	} /* fim ativa: Testar PILHA verificaPilhaVazia */
	/* Testar PILHA imprimePilha */
	else if (strcmp(ComandoTeste, IMPRIME_PILHA_CMD) == 0)
	{

		NumLidos = LER_LerParametros("ii", &numeroPilha, &CondRetEsperada);

		if (NumLidos != 2 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		CondRetRecebida = PILHA_imprimePilha(nPilhas[numeroPilha]);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao imprimir a Pilha");

	} /* fim ativa: Testar PILHA imprimePilha */

#ifdef _DEBUG

	else if (strcmp(ComandoTeste, DETURPAR_CMD) == 0)
	{

		NumLidos = LER_LerParametros("iii", &numeroPilha, &acao, &CondRetEsperada);

		if (NumLidos != 3 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		if (acao == 1){
			numAlocAnt = CED_ObterNumeroEspacosAlocados();
		}

		CondRetRecebida = PILHA_deturpaPilha(nPilhas[numeroPilha], acao, &numAlocAnt);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao Deturpar a Pilha");

	} /* fim ativa: Testar PILHA DeturpaPilha */

#endif

#ifdef _DEBUG

	else if (strcmp(ComandoTeste, VER_PILHA_CMD) == 0)
	{

		NumLidos = LER_LerParametros("ii", &numeroPilha, &CondRetEsperada);

		if (NumLidos != 2 || numeroPilha >= 10 || numeroPilha < 0){
			return TST_CondRetParm;
		} /* if */

		CondRetRecebida = PILHA_verificaNo(nPilhas[numeroPilha], numAlocAnt);

		return TST_CompararInt(CondRetEsperada, CondRetRecebida, "Erro ao Verificar a Pilha");

	} /* fim ativa: Testar PILHA VerificaPilha */

#endif

	return TST_CondRetNaoConhec;

} /* Fim função: TESTPILHA Efetuar operações de teste específicas para cartas */