Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to unit test C (with the help of code blocks)?

I have a task of unit testing C project for homework. It's written in Code Blocks. Here's one example from the code:

void ServerUserWrite(int Command)  //Command "1" prints an extra row into server. For example addinga new user. it expects that the extra row with the correct data is already existing in the structure.
{
        FILE *UserDataBase;
        int i,j;
        UserDataBase=fopen(UserDatabasePath,"w");
        if(Command==1)
        {ServerUserCount=ServerUserCount+1;}
        fprintf(UserDataBase,"%d\n",ServerUserCount);
        if(ServerUserCount>0)
        {
                for(i=0;i<ServerUserCount;i++)
                {
                        fprintf(UserDataBase,"%d ",UserDB[i].UserID);
                        fprintf(UserDataBase,"%s ",UserDB[i].User);
                        fprintf(UserDataBase,"%d ",UserDB[i].UserPasswordLength);
                        fprintf(UserDataBase,"%d ",UserDB[i].Encrypter);
                        for (j=0;j<UserDB[i].UserPasswordLength;j++)
                        {fprintf(UserDataBase,"%d ",UserDB[i].Pass[j]);}
                        fprintf(UserDataBase,"%d ",UserDB[i].BackgroundColor);
                        fprintf(UserDataBase,"%d ",UserDB[i].ForegroundColor);
                        fprintf(UserDataBase,"%d ",UserDB[i].UnreadMessages);
                        fprintf(UserDataBase,"%d\n",UserDB[i].UnreadTweets);
                }
        }
        fclose(UserDataBase);
}

Well the question is: Is there any unit testing framework to combine with Code Blocks? And how to do it?

like image 967
user1079520 Avatar asked Nov 14 '22 13:11

user1079520


1 Answers

Yes we use Check to unit test our C project too, there is no need to integrate to the IDE, it's more friendly to show the testing result as a plain text.

But there is a framework for C++ unit test which can combined with code block IDE: Unit testing for Code Block

like image 132
Louis Avatar answered Dec 09 '22 14:12

Louis