GEODE-8756: Fix CacheableString::objectSize (#703)

  - objectSize was not taking into account null-terminator character,
    which as of C++11, as stated in ยง 21.4.7.1, should be included at
    the end of the same string character sequence.
  - Also, in those cases in which SSO applied, the returned size was
    higher than the actual one.
  - A parametrized UT was added to check objectSize is returning the
    right size. Note that no fixed sizes are part of such test, given
    that each std::string implementation could have a different SSO
    size.

* Revision 2

 - Added a new class called size_tracking_allocator, which is a custom
   allocator used to track the size STL objects.
 - Changed testing approach so it does not replicate internal logic, and
   instead it instantiates a basic_string<char> with the new custom
   allocator so heap size is tracked this way.
3 files changed
tree: 65121e2dcf2e332adc76c5a872bffef4582afd87
  1. bin/
  2. clicache/
  3. cmake/
  4. cppcache/
  5. defaultSystem/
  6. dependencies/
  7. dist/
  8. docker/
  9. docs/
  10. etc/
  11. examples/
  12. executables/
  13. packer/
  14. sni-test-config/
  15. sqliteimpl/
  16. ssl_keys/
  17. templates/
  18. tests/
  19. tools/
  20. xsds/
  21. .asf.yaml
  22. .clang-format
  23. .clang-tidy
  24. .cpackignore
  25. .gitignore
  26. .lcovrc
  27. .lgtm.yml
  28. .ratignore
  29. .travis.yml
  30. BUILDING.md
  31. CMakeLists.txt
  32. CONTRIBUTING.md
  33. FindNativeClient.cmake
  34. FindNativeClientCPPCache.cmake
  35. LICENSE
  36. NOTICE
  37. README.md
README.md

Build Status License Total alerts Language grade: C/C++ Language grade: C# Language grade: JavaScript

Overview
Building from Source
Application Development

Overview

Native Client is a client implementation for Apache Geode that does not require the Java server JARs.

Building from Source

Directions to build Native Client from source can be found in the source distribution in BUILDING.md.

Application Development

Native Client applications can be written in these client technologies:

Export Control

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

The following provides more details on the included cryptographic software:

  • Apache Geode links to and uses OpenSSL ciphers.