From 36af6ac1f88eed02daa98f324d76a7452659c8b5 Mon Sep 17 00:00:00 2001 From: Kyle Isom Date: Fri, 6 Oct 2023 06:25:58 +0000 Subject: [PATCH] Clean up the Linux side of the build. CLion on Windows missed a lot of stuff. --- Arena.cc | 22 +++++++++++----------- Arena.h | 3 +-- Dictionary.cc | 16 ++++++++-------- Makefile | 6 +++--- dictionary_test | Bin 0 -> 67720 bytes testFixtures.h | 3 +++ tlvTest.cc | 2 +- tlv_test | Bin 0 -> 55488 bytes 8 files changed, 27 insertions(+), 25 deletions(-) create mode 100755 dictionary_test create mode 100755 tlv_test diff --git a/Arena.cc b/Arena.cc index feaabe8..5eae512 100644 --- a/Arena.cc +++ b/Arena.cc @@ -69,18 +69,18 @@ AllocNewArena(Arena & arena, size_t size) #if defined(__linux__) int -MMapArena(Arena &arena, int fd, size_t Size) +MMapArena(Arena &arena, int fd, size_t size) { if (arena.Size > 0) { - if (arena_destroy(arena) != 0) { + if (DestroyArena(arena) != 0) { return -1; } } arena.Type = ARENA_MMAP; - arena.Size = Size; - arena.store = (uint8_t *)mmap(NULL, Size, PROT_RW, MAP_SHARED, fd, 0); - if ((void *)arena.store == MAP_FAILED) { + arena.Size = size; + arena.Store = (uint8_t *)mmap(NULL, size, PROT_RW, MAP_SHARED, fd, 0); + if ((void *)arena.Store == MAP_FAILED) { return -1; } arena.fd = fd; @@ -94,7 +94,7 @@ OpenArena(Arena &arena, const char *path) struct stat st; if (arena.Size > 0) { - if (arena_destroy(arena) != 0) { + if (DestroyArena(arena) != 0) { return -1; } } @@ -113,12 +113,12 @@ OpenArena(Arena &arena, const char *path) int -CreateArena(Arena &arena, const char *path, size_t Size, mode_t mode) +CreateArena(Arena &arena, const char *path, size_t size, mode_t mode) { int fd = 0; if (arena.Size > 0) { - if (arena_destroy(arena) != 0) { + if (DestroyArena(arena) != 0) { return -1; } } @@ -128,7 +128,7 @@ CreateArena(Arena &arena, const char *path, size_t Size, mode_t mode) return -1; } - if (ftruncate(fd, Size) == -1) { + if (ftruncate(fd, size) == -1) { return -1; } @@ -170,7 +170,7 @@ DestroyArena(Arena &arena) break; #if defined(__linux__) case ARENA_MMAP: - if (munmap(arena.store, arena.Size) == -1) { + if (munmap(arena.Store, arena.Size) == -1) { return -1; } @@ -219,7 +219,7 @@ DisplayArena(const Arena &arena) break; #if defined(__linux__) case ARENA_MMAP: - std::cout << "mmap/file" + std::cout << "mmap/file"; break; #endif default: diff --git a/Arena.h b/Arena.h index 61be019..10fbae0 100644 --- a/Arena.h +++ b/Arena.h @@ -38,8 +38,7 @@ int DestroyArena(Arena &); /* dispose of any memory used by arena */ * BACKING FILE! */ int WriteArena(const Arena &arena, const char *path); -void -DisplayArena(const Arena &arena); +void DisplayArena(const Arena &arena); #endif diff --git a/Dictionary.cc b/Dictionary.cc index 6d50552..8deadad 100644 --- a/Dictionary.cc +++ b/Dictionary.cc @@ -135,17 +135,17 @@ Dictionary::DumpKVPairs() } } +#else +void +Dictionary::DumpKVPairs() +{ + +} +#endif + void Dictionary::DumpToFile(const char *path) { WriteArena(this->arena, path); } - -#else -void -Dictionary::dump_kvpairs() -{ - -} -#endif diff --git a/Makefile b/Makefile index cb720d5..6a69b5c 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ SOURCES := $(wildcard *.cc) OBJS := Arena.o Dictionary.o TLV.o CXX := clang++ -CXXFLAGS := -g -std=c++14 -Werror -Wall +CXXFLAGS := -g -std=c++14 -Werror -Wall -DDESKTOP_BUILD .PHONY: all all: $(TARGET) $(TESTS) tags run-tests @@ -17,10 +17,10 @@ $(TARGET): $(OBJS) $(AR) rcs $@ $(OBJS) tlv_test: tlvTest.o $(TARGET) - $(CXX) -o $@ $(CXXFLAGS) $@.o $(TARGET) + $(CXX) -o $@ $(CXXFLAGS) tlvTest.o $(TARGET) dictionary_test: dictionaryTest.o $(TARGET) - $(CXX) -o $@ $(CXXFLAGS) $@.o $(TARGET) + $(CXX) -o $@ $(CXXFLAGS) dictionaryTest.o $(TARGET) .PHONY: print-% print-%: ; @echo '$(subst ','\'',$*=$($*))' diff --git a/dictionary_test b/dictionary_test new file mode 100755 index 0000000000000000000000000000000000000000..5f983a1460626a3863e23fd132d17917a2d93b04 GIT binary patch literal 67720 zcmeFa34ByV_CH#6yZd%``gS@=C+T#SP6x6OmXMH*ga9EB=&%L|t3U`Lfhdpw37aCj z5+brIDk|89aoeNA1ras0v`kG$B>#HAvndV;NOV6y-QJVeBL*ZTMsAqgN06ExN{VOFKvV}eJN3t&JV zw3jL5tQ~f@34Q?e^{{W&_Z9N>BidrQ+U|)e2I^sVVZFU-y}fF^0EVgk8Nfh)VxQo@ z-m1R#=mi;myp%H5zFxqO_Bco_A3(H$pRr#w&isF3uUxHnTei@16=H|O=Qb4s_C`ZJ z?3e%PCos%oRD0JNhb3x%22eH2dd{hvk(bkR&deTj>gF{q>9M4DUXQ$-jD__Xy~qXh z3vFOb4H-F(Nh{eA zUUi9R%wuR`8PWb##8<oZ@31({2F?0zDD^i*WmZQ z2EYF`_|IH}Uvmxqm}~Iwyas>%HTWa0!GGZz{c!y?%0G0C@-wede%&?rM&O6H89_lj za*gueT*EHLtXEWRlkUHU9$z@oSynNka%Rnfnpt%V8*3I+j2JkleqK#Q)r>hcLe{Zl^2o9Ea~77)WtEf1 zHs;jKn>nYfdTe7>R`u+v1(l5ps_GgSmQ|OQjsafwjH-oo)s^)N8yD16%`K~_tjMe^ z9h(QHK}lopy84BcP@*QMY+haCpsdnG#7E`jgU5`mA6r>UHs&lW`=9Brt^n=1mF2^# zJ2Eg(7yzHE>zf+en9^Js3l6f%%IYOmm9=&As^-)!t6_7S=FP2Y0B+U7g*DJ~wN-U< z7<3}&sD!1iTJ6xeRdw@NZGA%xq}6lk7eXhJo~p*0C3TH#Zq3|8dlr5plMz;)M3?CbLP}nv$<#+%q(o2S>3H0uA+HJ&JE^f zRf7jeWg)*>@P`a9D;ZeXDR0I_qXZxKoWNd#oRc~}?q7k=DIH%u5|QY%j*t6c;B!{T zcLkV$ejVSfnSpc|(r1aDj5IEZt*3|{gETIM ztw)F+iZm{Pt$T?sK^nKh*4;!GB8^L7>t>?6_G7GeGtl%I=WG7Lx3O;q6!Px|^S+k8 z1E7F!V{ROf-|D3L)j^>rK{Ebl*|l7kr0Q2#rq8J1eeeI?7zqkYsshWEv$c*y=$Al!^lxR~cRHCKw$U-MJD$vxY zf$y(_#`$ML+mD+b0h(h+wW;5_7=)@nG+wK|DTWDfqVzJTV$I7h`I?)~gSOeA8ai$x z>`VT}-=Hs>Pxx9&L6YgO36QzjP{_Xs$&JfT`x7AWF$2}ApxS|zpz!5~VYd07hY(+L z>55|=P96Uvm(>cpAkuvs51$4Fuizv+fHTdv(f+XqN?n1S6@({Ad(&zECYWYHI`=RX zIe-(@KLo-x=gQ+;C~u|7nMiv2{u4G^a3%zu=_6E!VS5IV1FGuWMFCY{xeD?FUP3qg z??L*Xw7vk!5A+jS4?y1k?XTD@((3;n=9K1an9jnLgrJ4F*Rt?|@Oune7$7W6L<_g+ zENpIL;c3t+x}!JnJ9PUqIEg}M{04AfpipW+rTLmt5YI(L>M+!jt2AVRu;wV`bmQ zeHcCd53c3kFrmYYI?99&JL(vKI$HX!E}%~7haGV{vM|bXrvTS~zt#fimk}647;g|H z6_6kB60Z9GKS0=a=sOp7H^F1U0eqT)YC9nBf8%GZU*3U*8Tv&Fe^dztFQ7O0LJl1K zdv9drUPhn)g>}ingTVFwuBn0&PeLWtLD8*eU~+Znngw)0g$r;(Juq5W`~~v<4Aj@s zw_aG>iWYASS}a40w+V~-j-Pa`4)_3C3s!DND`SO~?P%rXC9+}_R{ElqsGyb4^MOni zR>Z{5eGf_m0`eos4|s_JG7FZK4qGQf8L%6Tb|(nC@o2Xk?W(i00(QtY9gixZ(KCDM1${z2gC!{34ISi-v5`M$gsZClCS0bz2GT0KM8eA5jrYS z$2Qc_()YtW65oq~bQW0@3{L~s|8KGai?BsoCjE2ZWYAK2*|+K#F7Z=er}ci#H<^Rh zAMvRx{rYj=`I<+ZU0-?z^fwCq#i)N}K!4MDf1{e;nA;OYH9^r?|D-@ZHx1pm9?2Hi zL|U58Zz%oF*D~U)WB;i^j{T)){28I$$Wk3XJF4L?0t&k69zRmlzx`X9s7^K zi7s>M>$RIzf4$)BdDxcxxB)r#!?YOTckH(ooOGJi|l<#@4$A1}5_ZA%YQ&o@}U1|cSi;KsG8KlqqB(r#UF4=l%7{d z_PlPiArCeFXZ_LK^o_51+*$Il-H`neHo~ihY$52?519dmOw<-bc6Jc-Ro0OK%|~h1 zco_$9c=LPyOXzOfF+6b;gTPl{2@V7W1wKZ!jQ9pUYW9U)J*MJ(?_2fFUMQ%a!tF!O z)RF&_wJKL2;{4ZR5uu_JstiFnR!5Iu z9u}%9Hs*$+_-iWObQ-JpGXmFC>6@b5!@ z8S=Xcev07ZN!_1?d}spL>}wbN)yQ`PA6UO+pd|Nm0Dmg7XaocMHS|9$sIX_9C_M`* zVEz1rW~Au2F{p=QrRLJJzBS9wY6~XK)4h;8EekND~Z5) zU7Oy`Qh>-QAU%_z><_GS;r6)JgP@i5O zPGdjrbk>pPZe(YVxliM{QhR`WMm6bthrr^PO0SZ?wP)gGO(l=D@;q z7?0hK{olhO)c-V|j9U&6FaFO#Ej}dZ_naMVwBktkHts<8{7rDwZ0|&ys*|;<8_KO4u;DPq zZ5sDJbhoc1;GJH(3$^P{QM4$uJBGm%0=V2!{K5X638JCYQ<@)ZnXP|DXRO|QU}Ail=|o>lv&kUK(szSDVhS$7eY4I0u3Ko&TTs zHV%Vn2dEQIYTkC|_f_9`p`&n#rhaPycd(VPRKt74jfc;}@cRFREr;j7E&v;Ix51kV ze^@JM#+^U+GdRurlYn&WUx%eBc7caAJ^+LoO<3bIf1t*bSmQe&Tfc;26aiWA5V`z3 zTfgo*(BN2$JFiaNjw3>_fyBYb`NxHkxxz>c8d<6u*|-l~!G}hFZGe@V1W&a72}tVN z=Axre+xC8rJWT~O#ELG*tD0JJ|CtJ8k9L~gp?++u=`PUJnux)<>KOL3ehk~}KR9|~ z0C2%Q@8640=CpNbgWl$O3(pt$fU#z|9}W<35P|;26Ed7EwG#G_AE$9CGK!RP{rg#q4#d8asZAD3Z{PwMRP4a*CC3fU;V1vo`u^gIgfqyW! zsVVfZsJS25AHo9h22DOrA%iBM3I^N`3b@y>$f{#l5_(MkyxDeP3(Qo}(BO>3137s@ z58PH?`bqHVG;pAQ+RinYpDV&e70qwdkxPH-j z1(i7V`}j-0LDBS+>q|j@Kp&l*xo@YBpMWL!r{>q-N#WGFYsQn%C*tq?28-|$((@b8 zNpQN2uW%lxH!)zH-o*R`6@zL2G>mffu(cMP3Z56e*cBAt^bSNF>6USRKRtlcT2l)9 zyLgWwPLdRH=l#oY5{m+07vDW-;S}tTOwdm!4c&ZzwE!ak#+$-Yjrdak1_rOra3Q2O zU3BolT?mT$Hx!H4Tw+?l^7)y+1(wgNrbG>thp>ScVi4-E)7k z=&ZDvRh>vh=^0!q*ODYKkMKT-6l-$`UajfR>w&(+omlu8jh=dAE@^?=#HtcGZwrL4&DGmh5vs3f7=5bzJpd#I<}&G%%~xSURJfBW?ofg zW6i?Gj2ZAvz@(XV)r}dxs)b#!Oy#igV=Kn=>h9Hu;iV&cr86v5S3j?6!O{w>SzXQQ z<~4fpyM$dJ)7@KLKW|~97r$HS?bmV%F)*ZpW4v5?S#3aGctzP*Wb|8@Sl3EyLVC5oTi#|24A8aQ&U~PU}hI$bobUQ zX{f1g6pi!NFREF9U#hH|H_LlN&C>tScmJ`)dF}knOJ~+OJ9#nd#O#|ioRBRY1A+>?uEGVvL5}I6*K7hoSMd( z5H`Q5X$hNAwG6(yTF(|XRLx~emM&Yigh9V9s+$S3_ojbcxw0MpJqiDg!M_0*=-y&) z<`PiVSP#vwTj*up8A~BJy;Y4~=z|3{3m1~SVrfGS%#Egbb?_D6I{H5CO#1F@T{WZc zx577FXVQ0Ed)C&$_l}$9-7v3y@jP#r#@V10{$J&t(KIWaEoOs)6U94hytkpMZUJ<6 zmyx4Jmcn>29%tyY9*$G+W{+)$*HMQcZ~W}am2-fRfR_OW0q%kWYX#sTz_oz!@Q}3~ zun6!NB0MO52#DVkICci)Q0@gdwoCz>2`9pv0F7TkIlvsiPXHSMF9W^+7!QvU6>xAa z0-OmC4O0M<;Q{d`z;l4R03ZGu>>~~M3E)iV(;|2#jQke#06hpW9_U8EDS#gW-UMib z*I&D^9N;0qL4cnC&IG&+xE62) zrg&)YF~BK+YcE1QqycvU=D->K5a3L}Pmm9I888y=F5}JMA7ByShk#Q6kHJmpO@NW= ziqDsgVSGs#k5kN+%{UIghr4Rl<=tRDU7iJofkgRs__rJE zo`-e^<%X|KSOVoQz`rAK)Jp;k%BN`cKLmF9=U1*gt(QxCr~uZ#0RPT{d|Mm&?Lm1Y zv}^arSFYf}EvSF6rauSdn?Zgp|0_UV4*uon>(^`b8$sRx@@&0)o+jUp`a!-^FPF9j z{d)oAVG!pQz@UEy1IGf`z7LTP@qegI{TGAvFMxbE$d9y<9}LPPVSW_D{CK5}{N
    s8KN9BkbdWpr@}ZhM2ju^$euY{epPYjBM`-mM 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 NF}ZGwWH{n<{s)=OfYks1 literal 0 HcmV?d00001 diff --git a/testFixtures.h b/testFixtures.h index 141dd60..31b743b 100644 --- a/testFixtures.h +++ b/testFixtures.h @@ -2,6 +2,9 @@ #define KLIB_TESTFIXTURES_H +#include + + #define ARENA_SIZE 128 #define ARENA_FILE "arena_test.bin" diff --git a/tlvTest.cc b/tlvTest.cc index ce269da..2e1ea84 100644 --- a/tlvTest.cc +++ b/tlvTest.cc @@ -97,7 +97,7 @@ main(int argc, const char *argv[]) if (-1 == CreateArena(arenaFile, ARENA_FILE, ARENA_SIZE, 0644)) { abort(); - } else if (!run_suite(arenaFile, "arenaFile")) { + } else if (!runSuite(arenaFile, "arenaFile")) { abort(); } #endif diff --git a/tlv_test b/tlv_test new file mode 100755 index 0000000000000000000000000000000000000000..afab5453e8c443af7202d29f4168eece4feb20c3 GIT binary patch literal 55488 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 G@&5v}zDs%l literal 0 HcmV?d00001