Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Issue with testing librairies
Qt 6.11 is out! See what's new in the release blog

Issue with testing librairies

Scheduled Pinned Locked Moved Unsolved General and Desktop
15 Posts 2 Posters 4.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jsulmJ jsulm

    @soufsouf How exactly do you test? It is completely unclear from your description! Does the function from the library which you call print anything?

    S Offline
    S Offline
    soufsouf
    wrote on last edited by
    #3

    @jsulm

    yes i am printing the result of the fonction called.

    I built a library called Util: libUtil.a where you have for example this fonction :
    int StrToInt(const UtilString& aString)
    {
    int num = aString.toInt();

    if(aString.indexOf(".") != -1)
    {
        num = RoundToInt(aString.toDouble());
    
    }
    return num;
    

    }

    and when i call this function in the main of the test project (in which i included the Library):

    UtilString num1ToStr = IntToStr(num1,true,5);
    std::cout << "Le resultat de 'num1ToStr.IntToStr(num1,true)' est: " << num1ToStr.toStdString()<< endl;

    i have always the console with nothing on it.

    In an other hand i did a small example with a fonction that print hello and increase the value of an int by +1 and it works just fine.

    thank you in advance for your time.

    jsulmJ 1 Reply Last reply
    0
    • S soufsouf

      @jsulm

      yes i am printing the result of the fonction called.

      I built a library called Util: libUtil.a where you have for example this fonction :
      int StrToInt(const UtilString& aString)
      {
      int num = aString.toInt();

      if(aString.indexOf(".") != -1)
      {
          num = RoundToInt(aString.toDouble());
      
      }
      return num;
      

      }

      and when i call this function in the main of the test project (in which i included the Library):

      UtilString num1ToStr = IntToStr(num1,true,5);
      std::cout << "Le resultat de 'num1ToStr.IntToStr(num1,true)' est: " << num1ToStr.toStdString()<< endl;

      i have always the console with nothing on it.

      In an other hand i did a small example with a fonction that print hello and increase the value of an int by +1 and it works just fine.

      thank you in advance for your time.

      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #4

      @soufsouf Try to add std::flush:

      std::cout << "Le resultat de 'num1ToStr.IntToStr(num1,true)' est: " << num1ToStr.toStdString()<< endl << std::flush;
      

      Also can you show your main function where you call the library function?

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      1
      • S Offline
        S Offline
        soufsouf
        wrote on last edited by
        #5

        in my main :
        #include "Util.h"
        #include <iostream>
        using namespace std;

        int main(int argc, char *argv[])
        {

        QCoreApplication a(argc, argv);
         int num1=52;
         UtilString chaine1="toto "; //(UtilString is define in my librairy)
         std::cout << "La chaine creee par chaine1= toto  est:" <<chaine1.toStdString() << endl; //this works just fine 
         
           UtilString num1ToStr;
          num1ToStr = IntToStr(num1,true,5); //when  i call IntToStr() nothing works anymore even the beginning
           std::cout << "Le resultat de 'num1ToStr.IntToStr(num1,true)' est: " << num1ToStr.toStdString()<< endl; 
        

        return a.exec();
        }

        jsulmJ 1 Reply Last reply
        0
        • S soufsouf

          in my main :
          #include "Util.h"
          #include <iostream>
          using namespace std;

          int main(int argc, char *argv[])
          {

          QCoreApplication a(argc, argv);
           int num1=52;
           UtilString chaine1="toto "; //(UtilString is define in my librairy)
           std::cout << "La chaine creee par chaine1= toto  est:" <<chaine1.toStdString() << endl; //this works just fine 
           
             UtilString num1ToStr;
            num1ToStr = IntToStr(num1,true,5); //when  i call IntToStr() nothing works anymore even the beginning
             std::cout << "Le resultat de 'num1ToStr.IntToStr(num1,true)' est: " << num1ToStr.toStdString()<< endl; 
          

          return a.exec();
          }

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #6

          @soufsouf said in Issue with testing librairies:

          when i call IntToStr() nothing works anymore even the beginning

          Can you show content of IntToStr?

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • S Offline
            S Offline
            soufsouf
            wrote on last edited by
            #7

            int StrToInt(const UtilString& aString)
            {
            int num = aString.toInt();
            if(aString.indexOf(".") != -1)
            {
            num = RoundToInt(aString.toDouble());
            }
            return num;
            }

            jsulmJ 1 Reply Last reply
            0
            • S soufsouf

              int StrToInt(const UtilString& aString)
              {
              int num = aString.toInt();
              if(aString.indexOf(".") != -1)
              {
              num = RoundToInt(aString.toDouble());
              }
              return num;
              }

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #8

              @soufsouf IntToStr not StrToInt

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              S 1 Reply Last reply
              0
              • jsulmJ jsulm

                @soufsouf IntToStr not StrToInt

                S Offline
                S Offline
                soufsouf
                wrote on last edited by
                #9

                @jsulm sorry

                UtilString IntToStr(int aValue, bool signPart,int integerPart)
                {
                UtilString s="";

                int intpart=abs(aValue);
                
                if(signPart) s+=((aValue>=0)?"+":"-");
                
                {
                    UtilString ss;
                
                    if(integerPart>0)
                    {
                        ss = UtilString("%1").arg(intpart,integerPart);
                        ss.replace(' ','0');
                    }
                    else
                    {
                        ss = UtilString("%1").arg(intpart);
                    }
                    s+=ss;
                }
                

                return s;

                }

                jsulmJ 1 Reply Last reply
                0
                • S soufsouf

                  @jsulm sorry

                  UtilString IntToStr(int aValue, bool signPart,int integerPart)
                  {
                  UtilString s="";

                  int intpart=abs(aValue);
                  
                  if(signPart) s+=((aValue>=0)?"+":"-");
                  
                  {
                      UtilString ss;
                  
                      if(integerPart>0)
                      {
                          ss = UtilString("%1").arg(intpart,integerPart);
                          ss.replace(' ','0');
                      }
                      else
                      {
                          ss = UtilString("%1").arg(intpart);
                      }
                      s+=ss;
                  }
                  

                  return s;

                  }

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #10

                  @soufsouf If you comment out everything in IntToStr and just return an empty string, does it work then?

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  S 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @soufsouf If you comment out everything in IntToStr and just return an empty string, does it work then?

                    S Offline
                    S Offline
                    soufsouf
                    wrote on last edited by
                    #11

                    @jsulm no i already did it (but i did it again) no problem during the compilation but the execution give an empty console without any error message :/

                    jsulmJ 1 Reply Last reply
                    0
                    • S soufsouf

                      @jsulm no i already did it (but i did it again) no problem during the compilation but the execution give an empty console without any error message :/

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #12

                      @soufsouf It could be toStdString() from your UtilString, you should check it

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      S 1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        @soufsouf It could be toStdString() from your UtilString, you should check it

                        S Offline
                        S Offline
                        soufsouf
                        wrote on last edited by
                        #13

                        @jsulm if i hide this line: std::cout << "Le resultat de 'num1ToStr.IntToStr(num1,true)' est: " << num1ToStr.toStdString()<< endl; the beginning of the main is not printed in the console because of the IntToStr() call that is why it can't be something related to the printing ! i has been 3 days now that i am dealling with this issue do not know where to search.

                        jsulmJ 1 Reply Last reply
                        0
                        • S soufsouf

                          @jsulm if i hide this line: std::cout << "Le resultat de 'num1ToStr.IntToStr(num1,true)' est: " << num1ToStr.toStdString()<< endl; the beginning of the main is not printed in the console because of the IntToStr() call that is why it can't be something related to the printing ! i has been 3 days now that i am dealling with this issue do not know where to search.

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by
                          #14

                          @soufsouf Did you try to debug step-by-step? Put a break point at the first line in IntToStr().

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          S 1 Reply Last reply
                          0
                          • jsulmJ jsulm

                            @soufsouf Did you try to debug step-by-step? Put a break point at the first line in IntToStr().

                            S Offline
                            S Offline
                            soufsouf
                            wrote on last edited by
                            #15

                            @jsulm I Can not explain why but when you asked me to debug a file in my librairy i changed from release to Debug the compiler of my Library project
                            And then it worked !!!!
                            Since my main.cpp to test the project is in Debug mode also i thought you have to be in the same mode in both ( Library and Test ) but when both are in release mode it doesn't work.

                            Whatever thank you for your indications it'a good step.

                            1 Reply Last reply
                            0

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved