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 */