2017-09-28 7 views
1

J'utilise google test framework pour tester le commutateur Ethernet matériel. Certaines opérations (par exemple, l'activation de RSTP) prennent du temps pour continuer. Je dois donc mettre en œuvre une sorte de fonction Sleep() l'intérieur du boîtier de test:Ajouter un délai à gtest Cas de test

TEST_F(RSTP, enableRSTP) { 
    snmp.set(OID, Integer32(3)); 
    // after changing value switch is unavailable 
    // so I need to wait before request 
    auto result = snmp.get(OID); 
    auto res = std::get<Integer32>(result); 
    ASSERT_EQ(res, Integer32(3)); 
} 

Comment y parvenir?

+1

Je ne sais pas si c'est correct mais vous pouvez utiliser quelque chose d'aussi simple que 'std: : this_thread :: sleep_for' –

+0

utilisez-vous C++ 11? –

+0

Sinon, quel système d'exploitation utilisez-vous? –

Répondre

1

Comme mentionné dans l'un des commentaires, vous pouvez simplement utiliser (C++ 14):

#include <chrono> 
#include <thread> 
TEST_F(RSTP, enableRSTP) { 
    ... 
    using namespace std::chrono_literals; 
    std::this_thread::sleep_for(2s); 
    ... 
} 

... ou 11 C++, remplacer 2s avec:

std::chrono::seconds(2) 

Si vous n'utilisez pas> = C++ 11, alors cela devient une question spécifique au système d'exploitation (pas C++ standard)

+0

Merci! Fonctionne exactement comme j'en ai besoin – Alexandr