]> WPIA git - cassiopeia.git/blobdiff - test/src/slipBioTest.cpp
fmt: run format script excluding lambdas
[cassiopeia.git] / test / src / slipBioTest.cpp
index 7b45158ba010dbc88d5f7c259d1ddc78161b1815..91472902cc4119af98ad1faa70568447a1c94309 100644 (file)
@@ -6,36 +6,33 @@
 #include <openssl/ssl.h>
 #include <openssl/err.h>
 
-#include "bios.h"
-#include "opensslBIO.h"
-#include "slipBio.h"
+#include "io/bios.h"
+#include "io/opensslBIO.h"
+#include "io/slipBio.h"
 
 class OpensslBIOVector : public OpensslBIO {
 private:
-    std::vector<std::vector<char>>::iterator it, end;
     std::vector<std::vector<char>> input;
+    std::vector<std::vector<char>>::iterator it, end;
 
 public:
     std::vector<std::vector<char>> result = std::vector<std::vector<char>>();
-    OpensslBIOVector( std::vector<std::vector<char>> data ) {
-        input = data;
-        it = input.begin();
-        end = input.end();
+    OpensslBIOVector( std::vector<std::vector<char>> data ) : input( data ), it( input.begin() ), end( input.end() ) {
     }
 
-    int write( const charbuf, int num );
-    int read( charbuf, int size );
-    long ctrl( int cmod, long arg1, voidarg2 );
+    int write( const char *buf, int num );
+    int read( char *buf, int size );
+    long ctrl( int cmod, long arg1, void *arg2 );
 
-    static const chargetName();
+    static const char *getName();
 };
 
-int OpensslBIOVector::write( const charbuf, int num ) {
+int OpensslBIOVector::write( const char *buf, int num ) {
     result.push_back( std::vector<char>( buf, buf + num ) );
     return num;
 }
 
-int OpensslBIOVector::read( charbuf, int size ) {
+int OpensslBIOVector::read( char *buf, int size ) {
     if( it == end ) {
         return -1;
     }
@@ -46,18 +43,18 @@ int OpensslBIOVector::read( char* buf, int size ) {
 
     std::copy( it->begin(), it->end(), buf );
     auto result = it->size();
-    it++;
+    ++it;
     return result;
 }
 
-long OpensslBIOVector::ctrl( int cmod, long arg1, voidarg2 ) {
+long OpensslBIOVector::ctrl( int cmod, long arg1, void *arg2 ) {
     ( void ) cmod;
     ( void ) arg1;
     ( void ) arg2;
     return 0;
 }
 
-const charOpensslBIOVector::getName() {
+const char *OpensslBIOVector::getName() {
     return "dummyBIO";
 }
 
@@ -66,7 +63,7 @@ BOOST_AUTO_TEST_SUITE( TestSLIPBioWrapper )
 BOOST_AUTO_TEST_CASE( TestMockup ) {
     std::vector<std::vector<char>> source = {{1, 2}, {1, 2, 3}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}};
 
-    OpensslBIOVectordata = new OpensslBIOVector( source );
+    OpensslBIOVector *data = new OpensslBIOVector( source );
 
     char buf[4096];
 
@@ -85,12 +82,13 @@ BOOST_AUTO_TEST_CASE( TestMockup ) {
 
     delete data;
 }
-
+/*
 BOOST_AUTO_TEST_CASE( TestSLIP ) {
-    std::vector<std::vector<char>> source = { {1, 2, 3, 4, 5, ( char ) 0xc0, 1, ( char ) 0xc0}, {1, 2}, {( char ) 0xc0}, {1, ( char ) 0xdb}, {( char ) 0xdc}, {( char ) 0xc0, ( char )0xdb}, {( char ) 0xdd, 2}, {( char ) 0xc0}};
+    std::vector<std::vector<char>> source = { { (char) 0xc0 }, {1, 2, 3, 4, 5, ( char ) 0xc0, 1, ( char ) 0xc0}, {1, 2}, {( char ) 0xc0}, {1, ( char ) 0xdb}, {( char ) 0xdc}, {( char ) 0xc0, ( char )0xdb}, {( char ) 0xdd, 2}, {( char ) 0xc0}};
     std::shared_ptr<OpensslBIOVector> data = std::shared_ptr<OpensslBIOVector>( new OpensslBIOVector( source ) );
     char buf[4096];
-    SlipBIO* slip = new SlipBIO( data );
+    SlipBIO* slip = new SlipBIO();
+    slip->setTarget(data, true);
     int res = slip->read( buf, sizeof( buf ) );
     BOOST_CHECK_EQUAL( res, 5 );
     res = slip->read( buf, sizeof( buf ) );
@@ -107,15 +105,16 @@ BOOST_AUTO_TEST_CASE( TestSLIP ) {
     BOOST_CHECK_EQUAL( res, 2 );
     char res3[] = {( char ) 0xdb, 2};
     BOOST_CHECK_EQUAL_COLLECTIONS( buf, buf + 2, res3, res3 + 2 );
+    delete slip;
 }
 
 BOOST_AUTO_TEST_CASE( TestSSLThroughSLIP ) {
     BIO* bio1, *bio2;
     BOOST_REQUIRE_EQUAL( BIO_new_bio_pair( &bio1, 8096, &bio2, 8096 ), 1 );
     BIO* slip1 = BIO_new( toBio<SlipBIO>() );
-    ( ( SlipBIO* )slip1->ptr )->setTarget( std::shared_ptr<OpensslBIO>( new OpensslBIOWrapper( bio1 ) ) );
+    ( ( SlipBIO* )slip1->ptr )->setTarget( std::shared_ptr<OpensslBIO>( new OpensslBIOWrapper( std::shared_ptr<BIO>( bio1, BIO_free ) ) ), true );
     BIO* slip2 = BIO_new( toBio<SlipBIO>() );
-    ( ( SlipBIO* )slip2->ptr )->setTarget( std::shared_ptr<OpensslBIO>( new OpensslBIOWrapper( bio2 ) ) );
+    ( ( SlipBIO* )slip2->ptr )->setTarget( std::shared_ptr<OpensslBIO>( new OpensslBIOWrapper( std::shared_ptr<BIO>( bio2, BIO_free ) ) ), false );
 
     auto meth = TLSv1_method();
     auto c_ctx = SSL_CTX_new( meth );
@@ -138,8 +137,8 @@ BOOST_AUTO_TEST_CASE( TestSSLThroughSLIP ) {
 
     char data[] = {1, 2, 3, 4, 5};
     char data2[5];
-    ERR_load_SSL_strings();
-    ERR_load_crypto_strings();
+    //ERR_load_SSL_strings();
+    //ERR_load_crypto_strings();
 
     int res = BIO_write( c_bio, data, 5 );
     BOOST_CHECK_EQUAL( res, -1 );
@@ -149,7 +148,6 @@ BOOST_AUTO_TEST_CASE( TestSSLThroughSLIP ) {
     res = BIO_write( c_bio, data, 5 );
     BOOST_CHECK_EQUAL( res, -1 );
 
-
     res = BIO_read( s_bio, data2, sizeof( data2 ) );
     BOOST_CHECK_EQUAL( res, -1 );
     res = BIO_write( c_bio, data, 5 );
@@ -157,6 +155,17 @@ BOOST_AUTO_TEST_CASE( TestSSLThroughSLIP ) {
     res = BIO_read( s_bio, data2, sizeof( data2 ) );
     BOOST_CHECK_EQUAL( res, 5 );
     BOOST_CHECK_EQUAL_COLLECTIONS( data, data + 5, data2, data2 + 5 );
-}
 
+    BIO_free( c_bio );
+    BIO_free( s_bio );
+
+    BIO_free( slip1 );
+    BIO_free( slip2 );
+    SSL_free( c_ssl );
+    SSL_free( s_ssl );
+
+    SSL_CTX_free( c_ctx );
+    SSL_CTX_free( s_ctx );
+}
+*/
 BOOST_AUTO_TEST_SUITE_END()