summaryrefslogtreecommitdiff
path: root/comphelper/qa/unit
AgeCommit message (Collapse)Author
2019-12-01Introduce o3tl::optional as an alias for std::optionalStephan Bergmann
...with a boost::optional fallback for Xcode < 10 (as std::optional is only available starting with Xcode 10 according to <https://en.cppreference.com/w/cpp/compiler_support>, and our baseline for iOS and macOS is still Xcode 9.3 according to README.md). And mechanically rewrite all code to use o3tl::optional instead of boost::optional. One immediate benefit is that disabling -Wmaybe-uninitialized for GCC as per fed7c3deb3f4ec81f78967c2d7f3c4554398cb9d "Slience bogus -Werror=maybe-uninitialized" should no longer be necessary (and whose check happened to no longer trigger for GCC 10 trunk, even though that compiler would still emit bogus -Wmaybe-uninitialized for uses of boost::optional under --enable-optimized, which made me ponder whether this switch from boost::optional to std::optional would be a useful thing to do; I keep that configure.ac check for now, though, and will only remove it in a follow up commit). Another longer-term benefit is that the code is now already in good shape for an eventual switch to std::optional (a switch we would have done anyway once we no longer need to support Xcode < 10). Only desktop/qa/desktop_lib/test_desktop_lib.cxx heavily uses boost::property_tree::ptree::get_child_optional returning boost::optional, so let it keep using boost::optional for now. After a number of preceding commits have paved the way for this change, this commit is completely mechanical, done with > git ls-files -z | grep -vz -e '^bin/find-unneeded-includes$' -e '^configure.ac$' -e '^desktop/qa/desktop_lib/test_desktop_lib.cxx$' -e '^dictionaries$' -e '^external/' -e '^helpcontent2$' -e '^include/IwyuFilter_include.yaml$' -e '^sc/IwyuFilter_sc.yaml$' -e '^solenv/gdb/boost/optional.py$' -e '^solenv/vs/LibreOffice.natvis$' -e '^translations$' -e '\.svg$' | xargs -0 sed -i -E -e 's|\<boost(/optional)?/optional\.hpp\>|o3tl/optional.hxx|g' -e 's/\<boost(\s*)::(\s*)(make_)?optional\>/o3tl\1::\2\3optional/g' -e 's/\<boost(\s*)::(\s*)none\>/o3tl\1::\2nullopt/g' (before committing include/o3tl/optional.hxx, and relying on some GNU features). It excludes some files where mention of boost::optional et al should apparently not be changed (and the sub-repo directory stubs). It turned out that all uses of boost::none across the code base were in combination with boost::optional, so had all to be rewritten as o3tl::nullopt. Change-Id: Ibfd9f4b3d5a8aee6e6eed310b988c4e5ffd8b11b Reviewed-on: https://gerrit.libreoffice.org/84128 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-23size some stringbuffer to prevent re-allocNoel Grandin
Change-Id: I385587a922c555c320a45dcc6d644315b72510e9 Reviewed-on: https://gerrit.libreoffice.org/81278 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-01Implement parallel version of super-scalar-sample-sort...Dennis Francis
and use it for the pivot table construction routine processBuckets(). The implementation uses ideas from the non-parallel sample sort discussed in the below paper, but parallelizes the "binning"/"classification" operations and the sorting of the bins themselves. Sanders, Peter, and Sebastian Winkel. "Super scalar sample sort." European Symposium on Algorithms. Springer, Berlin, Heidelberg, 2004. which can be accessed at : http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.366&rep=rep1&type=pdf Change-Id: I3723b87e2feb8d7d9ee03f71f6025e26add914ce Reviewed-on: https://gerrit.libreoffice.org/79486 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-04-26Fix a copypaste error in commentMike Kaganski
Change-Id: Ic5272fe2e7226c5d6ccbb42c0b22635c2360200c Reviewed-on: https://gerrit.libreoffice.org/71394 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-26Add a unit test for comphelper's guardsMike Kaganski
Change-Id: Ia9a9c5694d3982a87b720071b74220d572ef1a78 Reviewed-on: https://gerrit.libreoffice.org/71355 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-26tdf#43157 Clean up OSL_VERIFY (replace with SAL_WARN)Jens Carl
Replace OSL_VERIFY with SAL_WARN_IF and add some unit tests to ensure the replacements don't some side effects. Change-Id: I96eb00e2856e767e83596a21d30ae12a0efddf6d Reviewed-on: https://gerrit.libreoffice.org/71252 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-04-19tdf#42949 Fix IWYU warnings in comphelperGabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Also re-evaluate some blacklisted headers and recheck include/comphelper/ Change-Id: Ib7eea5951e849c07cea2e2782be4e8945f71ad96 Reviewed-on: https://gerrit.libreoffice.org/70899 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-11-21loplugin:redundantfcast improvementsNoel Grandin
check for calls to constructors, and extend the list of types we check for unnecessary temporary creation Change-Id: Ia2c1f202b41ed6866779fff5343c821128033eec Reviewed-on: https://gerrit.libreoffice.org/63472 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-09Extend loplugin:redundantinline to catch inline functions w/o external linkageStephan Bergmann
...where "inline" (in its meaning of "this function can be defined in multiple translation units") thus doesn't make much sense. (As discussed in compilerplugins/clang/redundantinline.cxx, exempt such "static inline" functions in include files for now.) All the rewriting has been done automatically by the plugin, except for one instance in sw/source/ui/frmdlg/column.cxx that used to involve an #if), plus some subsequent solenv/clang-format/reformat-formatted-files. Change-Id: Ib8b996b651aeafc03bbdc8890faa05ed50517224 Reviewed-on: https://gerrit.libreoffice.org/61573 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-06base64: change impl. of encodig to also work with OStringBufferTomaž Vajngerl
+ make test simpler and add a test case for the new behaviour Change-Id: Ifc743835f0cd634c79929ce22dc36b5a822a7e88 Reviewed-on: https://gerrit.libreoffice.org/56969 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-03-05drop sax::tools::*base64 methodsNoel Grandin
and use the underlying comphelper methods rather. This is so that I can break the dependency that tools has on sax, and can add methods that make sax depend on tools. Change-Id: I8a2d6ce2ffc3529a0020710ade6a1748ee5af7d5 Reviewed-on: https://gerrit.libreoffice.org/50767 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-27Use for-range loops in comphelper and configmgrJulien Nabet
Change-Id: I91033395cb30a4ba9e65adb89712b3c70a39a508 Reviewed-on: https://gerrit.libreoffice.org/50396 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2018-02-26Introduce enum comphelper::Hash::IterCount instead of boolEike Rathke
Clarifies intention, and with IterCount::NONE prepared to handle something like old PBKDF1, if anything actually used that. See https://tools.ietf.org/html/rfc8018#section-5.1 where iteration count is not part of the re-hash. Change-Id: I5f97ca7a91f611eced8ced0a0c64961c04535d36
2018-02-26Prepare to handle OOXML Agile Encryption password hash as wellEike Rathke
... that prepends the iteration count to the hash instead of appending it Change-Id: I090393e6337c110029e35baaa259b40ef4e5d416
2018-02-26Move convenience abstractions to DocPasswordHelper, tdf#104250 follow-upEike Rathke
Change-Id: If0775ccf14b631918e51342a767412948e812c87
2018-02-24Hash Base64, Sequence and cleansing, tdf#104250 prepEike Rathke
Change-Id: I58d48b8caa780138b8431bec9db20c9d0e9abce7
2018-02-24Implement OOXML password hashing algorithm, tdf#104250 prepEike Rathke
As per https://msdn.microsoft.com/en-us/library/dd920692 Change-Id: Iebacaf3549dab28fd3033f9c241130fd66782b25 Reviewed-on: https://gerrit.libreoffice.org/50259 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
2018-01-12More loplugin:cstylecast: comphelperStephan Bergmann
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable loplugin:cstylecast for some more cases" plus solenv/clang-format/reformat-formatted-files Change-Id: I71a5092b344f206f2c7de606f2739d3b6e2cf0bb
2017-10-23loplugin:includeform: comphelperStephan Bergmann
Change-Id: I9297bd0449633d1055125e7c2f2f6d215a22ae7d
2017-04-29add test for MD5 hashingMarkus Mohrhard
Change-Id: If13f6d800b857cc6d581ef7800beb0f25b3f5a37 Reviewed-on: https://gerrit.libreoffice.org/36793 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-04-21add test for generic digest classMarkus Mohrhard
Change-Id: Ibe3f033ebec5f832eee7420013c7083ab224e65e Reviewed-on: https://gerrit.libreoffice.org/36791 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-04-14update cppunit to 1.14.0Markus Mohrhard
Change-Id: I95fa42f4ef0580734b605df859c1660b29adb8b2 Reviewed-on: https://gerrit.libreoffice.org/36499 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
2017-03-31This only wants to check for Windows in general?Stephan Bergmann
Change-Id: I0578e046b8d97b076ca638912740d548453a9a04 Reviewed-on: https://gerrit.libreoffice.org/35916 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-02-26loplugin:loopvartoosmallStephan Bergmann
Change-Id: Iedfb57f97a15b17a68a5de8e5efd9ba196864964
2017-02-02unnecessary use of OUStringBuffer in throwing exceptionsNoel Grandin
Change-Id: Iec1473264426f19c31e72260dfce9494389e474f Reviewed-on: https://gerrit.libreoffice.org/33788 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-28loplugin:stringconstant check for unnecessary OUString constructor..Noel Grandin
..calls when creating exceptions Change-Id: I3bc58a5aa4dc6f0508ecb88b3a843b96b8c7ebfe Reviewed-on: https://gerrit.libreoffice.org/33617 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-11-21Delete the "Any-to-Any" template specializations for LIBO_INTERNAL_ONLYStephan Bergmann
i.e., css::uno::Any function template specializations Any::has<Any>() const Any::get(Any const &) const operator >>=(Any const &, Any &) operator <<=(Any &, Any const &) that don't make much sense (the first is always true, the rest can be replaced with operator =, which additionally supports move semantics). For 3rd-party compatibility, do this only for LIBO_INTERNAL_ONLY, however. However, some generic template code did benefit from operator >>= working also for Any, so make up for that with a new (LIBO_INTERNAL_ONLY, given that operator >>= still covers if fine for !LIBO_INTERNAL_ONLY) fromAny, complementing the existing toAny. Change-Id: I8b1b5f803f0b909808159916366d53c948206a88 Reviewed-on: https://gerrit.libreoffice.org/30022 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2016-08-10comphelper: fix loplugin:cppunitassertequals warningsMiklos Vajna
Change-Id: If042462d8f250dbe2e1be278b7524dab243b08e8 Reviewed-on: https://gerrit.libreoffice.org/28012 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-06-16Expect fewer than MAX_CONCURRENCY threads in test (2)Ashod Nakashian
Change-Id: I895ae4dea12e66fcbd0f4635c6ba5915d0431187 Reviewed-on: https://gerrit.libreoffice.org/26346 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-06-16Expect fewer than MAX_CONCURRENCY threads in testAshod Nakashian
Change-Id: I4346b6d79b46bccb5b79e27744c3cf80aa88fc9a Reviewed-on: https://gerrit.libreoffice.org/26344 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2016-06-15tdf#98955 hardware_concurrency not ideal for thread poolsAshod Nakashian
A new static member getPreferredConcurrency added to comphelper::ThreadPool to return a configurable max number of threads. By default the new function returns the hardware_concurrency value provided by std::thread. When MAX_CONCURRENCY envar is defined, the return value is limited to whatever is set there. Three call-sites that used std::thread::hardware_concurrency have been replaced with getPreferredConcurrency. Unittests added to cover the functionality of the new member. Unittests are capped to 4 threads. Change-Id: I3332e393a88a5ed436316fa712ed920a4b37f4af Reviewed-on: https://gerrit.libreoffice.org/26254 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-24convert HighlighterLanguage to scoped enumNoel Grandin
Change-Id: Ibf0871601e52ea4fa49e9622176431943c55abdd
2016-02-24convert TokenTypes to scoped enumNoel Grandin
Change-Id: I17c0a616dd6cf48a22896b6cd6b0df157d1f9a9f
2015-11-20Seems more natural to pass a homogenous list by initializer_listStephan Bergmann
...than by template parameter pack (even if that requires using ServiceDecl*, as initializer_list cannot take reference types) Change-Id: Ia986201b52d8daedfe925f132ebc79bc2c0ba378
2015-10-06tdf#94228 comphelper: replace BOOST_PPDaniel Robertson
Replace BOOST_PP macros in comphelper with variadic templates. The client interface should not change. However, there are a few side effects due to this change. The most important being 1) There is no longer a maximum number of service declarations limmited by default at 12 for unwrapArgs and component_getFactoryHelper. 2) component_getFactoryHelper now terminates early as soon as pRet is not a null pointer. Change-Id: I016fd208d0e80f91d8669fff29d58b6189e946d3 Reviewed-on: https://gerrit.libreoffice.org/18891 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
2014-05-11fix-includes.pl: comphelperThomas Arnhold
Change-Id: I0b4cd8320881b2b1f7984c86e58915217bcd0d5f
2013-10-28Disambiguate CPPUNIT_ASSERT_EQUAL argumentsStephan Bergmann
Change-Id: Ib32d59522f33bcd2608401b4f3d3529d9dee5642
2013-10-28Fold SyntaxHighlighter::initialize into ctorStephan Bergmann
...which reveals that m_pKeyWords, m_nKeyWordCount members are unused. Change-Id: I55020e892d463f2e40d5bcf71efba92778b317c1
2013-10-28Remove unused SimpleTokenizer_Impl::nLine/nColStephan Bergmann
...which are never read; remove thereby unused parameters from functions. Change-Id: I644d2dc1b2d13ae2f932d04243521eef97e67e3e
2013-10-28Correctly fix "Terminating NUL" fixStephan Bergmann
1cbe2313edda8a04f0fe233b4a29ef4e2485f557 "Terminating NUL at end of its buffer is not considered part of OUString" was a thinko that cut the last character off the last reported HighlightPortion on a line. Change-Id: Idbe74676e85749cd93854293c6f49c7581414562
2013-10-28Demonstrate that empty comments are handled just fineStephan Bergmann
...see preceding revert of a79cb836b951eb2492e43aadd2ee672b9b67b914 "COMPHELPER: Allow empty comments in SyntaxHighlight." Change-Id: Ib0a8c46c19dd7f0697b95a1c28398073a1183281
2013-10-28Revert "COMPHELPER: Allow empty comments in SyntaxHighlight"Stephan Bergmann
This reverts commit a79cb836b951eb2492e43aadd2ee672b9b67b914, which broke --with-help builds again, as strLine.copy(i->nBegin, i->nEnd-i->nBegin) in BasicCodeTagger::tagParagraph (helpcompiler/source/BasCodeTagger.cxx) depends on the invariant that a HighlightPortion does not extend past the source string. Also, I see no reason for that change, as empty comments are handled just fine already as demonstrated by the following commit... Change-Id: I384bae9c4cf6a38d0a0a2832fa15bde82126cace
2013-10-27COMPHELPER: Allow empty comments in SyntaxHighlightArnaud Versini
Change-Id: I0f3d5673e28e34ed3921c930aca48f3d7574b064 Reviewed-on: https://gerrit.libreoffice.org/6450 Reviewed-by: Arnaud Versini <arnaud.versini@libreoffice.org> Tested-by: Arnaud Versini <arnaud.versini@libreoffice.org>
2013-10-23Improve testStephan Bergmann
Change-Id: I54e939b7bca883f1c92c957c66ebf47259c92a46
2013-10-23Fix and enable CppunitTest_comphelper_syntaxhighlight_testStephan Bergmann
Change-Id: I2b2aa5f5afdbf58ec3ac2447db370bcb7d1778c0
2013-10-23add inital test for syntaxhighlighterMarkus Mohrhard
Test is partly disabled as we still generate invalid tokens Change-Id: I1a9b03b9bbe2ed7087c6ab7b6d0823ac1d058ba7