2016-08-31 1 views
1

Ich habe diesen Code eines RC4-Algorithmus, wie kann ich ein cmake-Dokument erstellen, das die 3 Testfälle von Schlüssel- und einfachen Werten enthält?Wie kann ich Testfälle in CMake hinzufügen?

void main(int argc, char *argv[]) { 
    int i = 0; 
    //unsigned char key[]={"Key"},plain[]={"Plaintext"}; 
    unsigned char key[]={"Wiki"},plain[]={"pedia"}; 
    //unsigned char key[]={"Secret"},plain[]={"Attack at dawn"}; 

    ksa(key,sizeof(key)-1); 
    prga(sizeof(plain)-1); 
    for (i=0;i<sizeof(plain)-1;i++){ 
     printf("%02X ",result[i]); 
    } 

    //Get cypher text 
    for(i=0; i<sizeof(plain)-1;i++){ 
     cipher[i] = result[i]^plain[i]; 
    } 
    printf("\n"); 
    for (i=0;i<sizeof(plain)-1;i++){ 
     printf("%02X ",cipher[i]); 
    } 
    printf("\n"); 
} 
+1

BTW: Nur 'int' ist legal als Rückgabetyp von' main' – milleniumbug

+0

@milleniumbug es hängt vom Compiler ab. Einige verlangen, dass es "ungültig" ist (ich habe das auf Mikrocontrollern gesehen). –

Antwort

1

Hier einige CMake-Code, der Ihnen einen Start geben sollte (mit Plus ), wenn Ihre Rewrite Ihr Testprogramm die Schlüssel und Klartextwerte als Befehlszeilenparameter zu akzeptieren:

cmake_minimum_required(VERSION 2.8) 
project(RC4Test C) 

enable_testing() 

add_executable(${PROJECT_NAME} main.c) 

add_test(NAME Test1 COMMAND ${PROJECT_NAME} "Key" "Plaintext") 
set_tests_properties(Test1 PROPERTIES PASS_REGULAR_EXPRESSION "...") 

add_test(NAME Test2 COMMAND ${PROJECT_NAME} "Wiki" "pedia") 
set_tests_properties(Test2 PROPERTIES PASS_REGULAR_EXPRESSION "...") 

add_test(NAME Test3 COMMAND ${PROJECT_NAME} "Secret" "Attack at dawn") 
set_tests_properties(Test3 PROPERTIES PASS_REGULAR_EXPRESSION "...") 

Dann fügen Sie, was auch immer die Ausgabe ist die richtige PASS_REGULAR_EXPRESSION test property place holder "..." Ich habe den Code eingegeben.

Und Sie sind bereit, mit zu gehen:

> mkdir build 
> cd build 
> cmake .. 
> cmake --build . --config Release 
> ctest -V -C Release 

Referenzen

+0

Wie lege ich die Ausgabe? –

+0

@AnaGonzalez Die Option '-V' der Option' ctest' zeigt die Ausgabe Ihres Programms an. Sie können diese Hexadezimalzahl-Ausgaben nehmen und sie als die erwartete 'PASS_REGULAR_EXPRESSION' einfügen. – Florian

Verwandte Themen