aboutsummaryrefslogtreecommitdiff
path: root/src/unit (follow)
AgeCommit message (Collapse)Author
2011-01-20Wow! Merged the branch, streams are updated, and there's no more FString, runMike Buland
the fixstrings.sh script in the support directory to (hopefully) automatically update your projects.
2011-01-20Heh, forgot to rename the two fstring tests.Mike Buland
2011-01-20Wow, got the Stream changes propegated, all tests build with string instead ofMike Buland
fstring, and updated the copyright notice to extend to 2011
2011-01-20Bu::FString is now String, and there's a shell script to fix any other programsMike Buland
that were using fstring, I hope.
2011-01-13Md5 works really, really well. It's fast, and sexy, and awesome. Thanks david.Mike Buland
2010-11-04FString tests, the new one causes a segfault with the old fstring.Mike Buland
2010-10-14SharedCore has more features now, which is cool, including a test to see ifMike Buland
another object of the parent type has the same core, and another to clone the parent object. That one is pretty cool, it means you can now get a real copy when you want to, great for multi-threaded stuff. Also, two more classes are now SharedCore: Hash and Heap!
2010-10-14A quick unit test for the copy constructor in variant.Mike Buland
2010-06-21Fixed a bug in Bu::Buffer that resulted from a false negative on isEos if theMike Buland
underlying stream was empty.
2010-05-28More myriad testing and unit test features, not unit tests that may take aMike Buland
while are welcome to provide progress info with some builtin functions. The Bu::Archive class now throws an exception if reading is interrupted by EOS
2010-05-26Oooh, another minor myriad fix, it's getting solid now. :)Mike Buland
2010-05-26Fixed most of the compilation warnings, and a valgrind warning in the fstring'sMike Buland
remove function. memcpy can't do overlapping memory, changed it to use memmove.
2010-05-26More tweaks and informational functions.Mike Buland
2010-05-25More myriad tests and features, passes perfectly so far.Mike Buland
2010-05-25We now have a portable tempfile function, cool, it compiles on windows.Mike Buland
Fixed a bug in Socket, it wasn't closing the socket in all exception cases. Also fixed a few things in the unit test framework, going to add some more helpers soon.
2010-05-24Changed the Bu::Stream API, setSize is now standard. There may be a few moreMike Buland
things that should be added. A few of them still need to be implemented. I know that truncate for Bu::File is possible on windows, I've used it before, but hell if I can find it. Myriad also needs the setSize function completed.
2010-05-24Myriad unit test. Seems like it's workin' well.Mike Buland
2010-05-15mkunit.sh was a little dumb, it didn't handle a number of things correctly.Mike Buland
I've written a new program that basically does the same thing, only it's much more clever, and does many more of the translations and conversions better, including the #line directives. Also, I dropped nids, we don't need it anymore. But now I'm ready to write some serious tests for myriad.
2010-05-13david - put a bunch of data through it and check its validityDavid
2010-03-31Removed the bool cast operator from FBasicString. It turns out it was causingMike Buland
way, way, way more problems than it solved. A number of libbu++ tests were inacurate because of it, there were problems in several other programs, and there may be more that have problems we haven't found yet because of this. This will most likely cause complitaion errors, especially in places we didn't expect, where strings were being stored into or passed as integers and the like. In cases where you were just testing a string, just call the "isSet()" function, which is functionally equivellent to the old bool cast operator.
2010-02-13Added and updated the license info in all the source files, they still saidMike Buland
copyright 2007-2008.
2010-02-10Changed the name of nids to Myriad, I like it, but I'm not getting rid of nidsMike Buland
until I can safely migrate to Myriad.
2009-11-24Added a replace function to fstring...sweeet.Mike Buland
2009-11-12I've started my campaign to clean up all of the header files in libbu++ as farMike Buland
as includes go. This required a little bit of reworking as far as archive goes, but I've been planning on changing it aronud for a bit anyway. The final result here is that you may need to add some more includes in your own code, libbu++ doesn't include as many random things you didn't ask for anymore, most of these seem to be bu/hash.h, unistd.h, and time.h. Also, any Archive functions and operators should use ArchiveBase when they can instead of Archive, archivebase.h is a much lighterweight include that will be used everywhere in core that it can be, there are a few classes that actually want a specific archiver to be used, they will use it (such as the nids storage class). So far, except for adding header files, nothing has changed in functionality, and no other code changes should be required, although the above mentioned archive changeover is reccomended.
2009-10-16Finally added the substream class, and added getByPath (for properties) andMike Buland
getChildByPath (for groups) to the TafGroup class.
2009-10-16Although this looks like a load of code changes, this represents no functionalMike Buland
change to the Taf system. Really all that's happened is I've broken out the core taf data types into seperate files, and gone ahead and created a helpful new header file ("taf.h") that will include the entire taf system, including the reader and writer for you. This means that a lot of programs will start complaining, but fortunately, there's an easy solution, if it complains about taf, make sure to include taf.h at the top, instead of other taf files and you'll be set. The next set of changes will add lots of helpers to the taf system and change the reader to read non-const structures, i.e. I'll actually add editing support to created taf structures.
2009-09-10Hey, minor updates to the formatter and a unit test, nothing important.Mike Buland
2009-09-09Fixed a unit test, and added some fixes and new queue functions to list, fuck itMike Buland
it's easier when they're in list.
2009-08-14Massive freaking changes!!!Mike Buland
Bu:;SharedCore actually is in and works, it's well tested and there are no known memory leaks or violations as of now. It's been applied to Bu::List and Bu::FBasicString so far. This means that everything using Bu::List and Bu::FBasicString will be much, much faster and use considerably less memory. I still have plans to apply this to Hash and maybe a couple of other core classes.
2009-08-13Ok, shared core looks good, and I added a unit test for Bu::List to check a fewMike Buland
basics. It works, so now I'm going to apply SharedCore to Bu::List and see how bad it is. Also, I got rid of all the warnings and things that showed up during compilation, they were all silly anyway. Finally, mkunit.sh is much cooler. Hard to believe it's a shell script, it now also adds proper #line directives to the cpp output so if there is an error or warning g++ will give you the right line number in your .unit file, not the resultant cpp file.
2009-07-31I switched the Bu::Stream::isEOS function to be named Bu::Stream::isEos, andMike Buland
also made sure the copyright is at the top of all the files, it's been too long. Anyway, this may effect some code, but not much, and it's an easy enough fix.
2009-04-10Added some new goodness to the fbasicstring, fixing some inconsistancies andMike Buland
adding some more helpers. Hopefully this won't affect anything, but if it complains about any functions not working the way they used to, see if they're returning an int or an iterator. I made several functions handle iterators instead of ints, the int versions have an "Idx" suffix added now. I'm trying to switch entirely to iterators to reduce flattening and increase performance and stability. Also...something must have changed in the cache code...
2009-04-06Ok, I rearranged some things, we have a tools dir now, those build by default.Mike Buland
Also I added a bunch of classes that I've been tinkering with that are almost ready for use, so I figured I may as well throw them in here.
2009-04-02Array iterators' validity testing was actually reversed. That was a seriousMike Buland
problem. Also, arrays now have a formatter.
2009-02-27Fixed a bug in Bu::FString, it wouldn't concatinate properly when using the +Mike Buland
operator and the left-hand-side FString was const. Also, added a formatter << operator for Bu::List. The other containers should get their own formatter << operators soon too.
2009-02-08So many updates. I recommend using the new FString iterators instead of directMike Buland
indexing. It is now many times faster, and requires less overhead. Also, more stuff iterator related in every class. More on that later.
2009-01-07Corrected a couple of places where std:: classes were being used and shouldn'tMike Buland
have been. Also made the Unit tests actually use expected values, so you can mark a test as "expected fail" and it'll know. It also prints out cute reports at the end of each run.
2009-01-07Only two real changes. First, Bu::FString and Bu::FBasicString are in differentMike Buland
files. This won't affect any programs at all anywhere. This will just make it easier to maintain and extend later. You still want to include "bu/fstring.h" and use Bu::FString in code. The other is kinda fun. I created a special format for unit tests, they use the extension .unit now and use the mkunit.sh script to convert them to c++ code. There are some nice features here too, maintaining unit tests is much, much easier, and we can have more features without making the code any harder to use. Also, it will be easier to have the unit tests generate reports and be run from a master program and the like.
2008-12-31Wow, that was a freaky bug. Turned out to not have anything to do with theMike Buland
size of the table, it had to do with using non pointer types for the key (some more complex types worked as well, probably because of lazy memory collection) and then using the [] indexing operators. You wound up with pointers to local variables that didn't exist by the end of the assignemnt operator. Strange, but I didn't actually use references inside of all of the Bu::Hash accessor functions, that means in cases where more complex variables are used as keys (like Bu::FString) it was making several copies of them per operation and destroying them all immediately. Now it will be even faster and use much less memory. Good catch, David.
2008-12-30david - i found a strange hash bug, and made a unit test to reproduce it ↵David
("insert3")... with a hash of type Bu::Hash<int, Bu::FString>, when the size of the hash reaches certain points (11, 23, 46, 94, etc...), it seems to reset itself and not have any data in it...
2008-12-29Corrected the premature end of stream read corner case in Taf...it was freakingMike Buland
out and allocating all memory, now it just throws an exception.
2008-12-29Fixed some horror inside the Taf writer. It had a strange corner case whenMike Buland
adding a property to a group that had a name but an empty value. Also added a isEmpty() function to Bu::FString, finally.
2008-12-22Hey, corrected a minor issue in Bu::FString. Turns out C++ is hardass enoughMike Buland
that we need a concatination operator for both const chr * and chr *. This fixed a suprising number of problems.
2008-12-20All of the basic, core workings of the Cache are complete, and tested. EvenMike Buland
added some more tests and whatnot. A lot happened, but I can't remember everything. Also, Bu::File reports errors in more error cases.
2008-12-12All of those changes I thought I'd already committed. The taf writer handlesMike Buland
binary data much better, actually escaping it properly and not stopping on null. Bu::FString has an iterator, it's actually just a raw datatype, but it may have more function later, so careful assuming that it's a char and using it in any non-iterator like way. Also augmented the taf unit test, and added the Bu::CacheCalc base class, the rest of the simple develpment cycle will happen between here and project hhp.
2008-11-11david - added operator= and copy constructor to Bu::Array, and updated unit ↵David
tests to test it
2008-10-08Ok...corrected a problem with new block allocation in nids, and it no longerMike Buland
goes into an infinite loop while doing certain kinds of read. Also, it zeros out new blocks to make things easier to cope with in the hex editor, it'll probably also compress better. I also fixed Bu::MemBuf so that you can now write to arbitrary places mid-stream.
2008-10-02More changes to File...turns out tempFile always opens the file for reading andMike Buland
writing...so...what more do you need? It was ignoring the open flags you gave it anyway.
2008-10-01This commit is sure to break things. This should be a very, very minor change.Mike Buland
What changed API-Wise: - I deleted a constructor in Bu::File that shouldn't have been used anyway. - I changed it from using fopen style mode strings to using libbu++ style mode flags. Check the docs for the complete list, but basically instead of "wb" you do Bu::File::Write, and so on, you can or any of the libbu++ flags together. There is no binary/text mode, it just writes whatever you tell it to verbatim (binary mode). Lots of extras are supported. Nothing else should have changed (except now the file stream is unbuffered, like all the other streams). Sorry if this breaks anything, if it's too annoying, use the last revision for a while longer.
2008-10-01Ok, NIDS is getting better and better, and I went ahead and cleaned up someMike Buland
exception related code that's been annoying me. You should no longer have to include any exception header explicitly for normal operations, every class that has it's own exception to throw defines it in it's own headers. This may break some code that uses libbu++, but it's an easy fix, just delete the include for exceptions.h. Sometime soon I would also like to move from Bu::ExceptionBase to Bu::Exception, but that will affect a lot more code than this change did.