Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master #1

Open
wants to merge 534 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
534 commits
Select commit Hold shift + click to select a range
1534b3d
encoding: delete obsolete TLV-TYPE constants
yoursunny Jan 22, 2018
22f8568
mgmt: declare cs/config command
yoursunny Jan 22, 2018
e66040e
util: Fix conversion of large dates from strings to internal type
cawka Jan 26, 2018
07d05c9
mgmt: add congestion marking parameters
eric135 Jan 22, 2018
b984e32
net: parse interface names more loosely in FaceUri
Pesa Jan 25, 2018
d567aab
mgmt: make congestion marking parameters optional
eric135 Jan 27, 2018
c5ba65b
util: fix Y2038 problem in time::toString()
Pesa Jan 28, 2018
8b6eda9
lp: add PrefixAnnouncement field and tag
philoL Jan 26, 2018
a7ab06d
mgmt: add capacity and enablement flags to CsInfo
yoursunny Jan 29, 2018
be86d98
mgmt: fix CsInfo.Capacity decoding
yoursunny Feb 7, 2018
08378cb
name: fix encoding of "+" and "~" in Component::toUri()
Pesa Feb 1, 2018
5b323d1
lp: wrap Data in PrefixAnnouncement field
philoL Feb 1, 2018
38a061d
util: introduce escape() and use it in Component::toUri()
Pesa Feb 16, 2018
f47cef6
Prepare for 0.6.1 release
susmit85 Feb 13, 2018
3c8a8b0
mgmt: Dispatcher: minor code cleanups
Pesa Mar 1, 2018
df50538
mgmt: declare cs/erase command
yoursunny Mar 4, 2018
5e2ccca
mgmt: fix conflicting TLV-TYPE assignment
Pesa Mar 7, 2018
5560fd4
build: update waf to version 2.0.6
cawka Mar 7, 2018
5df42a8
security: minor cleanup
Pesa Mar 9, 2018
8a8c01b
tests: fix several instances of the most vexing parse
Pesa Mar 11, 2018
92e4d5c
ci: fix clang-7 (trunk) build job on Travis-CI
Pesa Mar 12, 2018
c6500a9
docs: only use sphinxcontrib-doxylink on Python 3
eric135 Mar 25, 2018
cf4ac5b
name-component: recognize typed name components
yoursunny Mar 28, 2018
4ffbb9d
interest+exclude: rename NameComponent to GenericNameComponent
yoursunny Mar 31, 2018
b849f61
util: give examples for NDN_CXX_DEPRECATED
yoursunny Apr 1, 2018
ebfe4a2
meta-info: allow typed name component in FinalBlockId
yoursunny Apr 1, 2018
a36f15d
name: allow appending typed name components
yoursunny Apr 4, 2018
8d3f834
interest: deprecate selectors
yoursunny Apr 4, 2018
25038f3
build: find Boost lib architecture automatically
eric135 Apr 6, 2018
3688d72
util: backport optional::reset
yoursunny Apr 10, 2018
a2550a9
encoding: declare TLV-TYPE constants for Packet Format v0.3
yoursunny Apr 10, 2018
0c145ec
util: support declaring loggers as class members
Pesa Apr 11, 2018
d95274b
util: let consumers decide the visibility of member loggers
Pesa Apr 12, 2018
6efa3b7
interest: recognize Interest in Packet Format v0.3
yoursunny Apr 14, 2018
7d9039b
data: recognize Data in Packet Format v0.3
yoursunny Apr 14, 2018
6d43393
tools: fix compilation with Boost 1.67
Pesa Apr 17, 2018
9c9672e
name: don't strip whitespace when parsing URI
yoursunny Apr 18, 2018
72c0c64
encoding: provide FormattedOutputFunction for Block
yoursunny Apr 20, 2018
974b81a
lp: encode sequence number as fixed-width integer
yoursunny Apr 21, 2018
1c9c96c
util: fix Logging::getLoggerNames()
Pesa Apr 25, 2018
d89f002
ci: add gcc-8 to Travis-CI build matrix
Pesa Apr 28, 2018
c93c2ce
encoding: add route origin for self-learning
philoL Apr 29, 2018
7c4ad51
docs: update list of supported platforms
Pesa Apr 28, 2018
d9b083e
Prepare release 0.6.2
cawka May 2, 2018
844b093
build: require gcc >= 5.3, boost >= 1.58, openssl >= 1.0.2
Pesa May 7, 2018
21be816
build: ignore OSError raised by subprocess.check_output()
Pesa May 11, 2018
cc910cd
util: use signals instead of callbacks in SegmentFetcher
eric135 May 7, 2018
e240422
face: use post instead of dispatch to avoid re-entrancy issues
agawande May 21, 2018
1fd0024
build: switch to C++14
Pesa May 20, 2018
59e266a
net: deprecate ndn::ip::address{,V6}FromString
Pesa May 27, 2018
436e46f
docs: allow use of "Num" and "No" in entity number variable names
eric135 Jun 11, 2018
90db7ee
net+util: remove dependency on Boost.Regex
Pesa Jun 10, 2018
3c9bc04
mgmt: add Mtu to faces/create and FaceStatus
eric135 Jun 3, 2018
634a62b
tools: Allow specifying passphrase for ndnsec import/export in comman…
cawka Jun 15, 2018
db4da5e
Improve and simplify code with modern C++ features
Pesa Jun 15, 2018
57d02b6
security: Fix bug preventing customization of KeyChain's TPM on macOS
cawka Jun 15, 2018
31fd467
security: Correctly handle Sha256-signed Command Interests
cawka Jun 17, 2018
ca660f1
build: require clang >= 3.6
Pesa Jun 16, 2018
71a2f03
mgmt: fix compilation error on Xcode 8 and earlier
eric135 Jun 19, 2018
e345baa
util: augment SegmentFetcher with congestion control
eric135 May 24, 2018
3306339
docs: unregister prefixes instead of calling Face::shutdown
eric135 Jun 23, 2018
2b765f8
util: eliminate selector usage in SegmentFetcher
eric135 Jun 25, 2018
4c45fd8
ims: correct inaccurate comment
yoursunny Jul 13, 2018
50b9226
net: refactor netlink message parsing, add extack support
Pesa Jul 11, 2018
2aec97a
net: filter netlink messages based on sender pid and destination group
Pesa Jul 13, 2018
14883ad
encoding: use Boost.Endian for endianness conversions
Pesa Jul 14, 2018
570b20d
encoding+lp: declare constexpr and noexcept where possible
Pesa Jul 16, 2018
bc76da1
util: update optional-lite to version 3.0.0
Pesa Jul 17, 2018
3a3e188
encoding+util: ensure move constructors are properly declared
Pesa Jul 17, 2018
5c1c444
security: Improve reliability of TPM BackEnd RandomKeyId test case
yoursunny Jul 18, 2018
643b7f5
mgmt: use platform-independent counter type
yoursunny Jul 18, 2018
54d74c2
security: correct ValidationPolicy docs
yoursunny Jul 18, 2018
b55e5d3
interest: declare default CanBePrefix setting
yoursunny Jul 18, 2018
cf0aff8
name: accommodate typed components in getSuccessor
yoursunny Jul 23, 2018
3b101d0
Use std::move in more places
Pesa Jul 22, 2018
68b5385
docs: update code-style rule 2.24
yoursunny Jul 25, 2018
b38664e
interest: support Parameters element
arthipadmanabhan Jul 18, 2018
d2e6063
name-component: recognize plain URI syntax
yoursunny Aug 10, 2018
4053bd5
name: recognize ParametersSha256DigestComponent
yoursunny Aug 16, 2018
a0b2a2c
net: refactor netlink socket handling
Pesa Jul 19, 2018
dc5bb96
net: support multiple concurrent netlink requests
Pesa Aug 13, 2018
1077499
net: initial support for generic netlink (genl)
Pesa Aug 19, 2018
426d500
encoding: update number assignments
yoursunny Aug 23, 2018
2b322eb
encoding: provide _block literal operator
yoursunny Aug 24, 2018
52bc4e9
build: disable -Wmissing-braces with clang < 6.0
Pesa Aug 23, 2018
755f8a8
net: NetworkMonitor: gracefully handle backend initialization failure
Pesa Aug 24, 2018
8127d1a
mgmt: encode and decode prefix announcement object
yoursunny Aug 24, 2018
474c3b2
build: check for linux/genetlink.h
Pesa Aug 25, 2018
4fc6db2
docs: Fix a typo
sepehrabdous Aug 22, 2018
502b479
encoding: replace the route origin selflearning with prefixann
philoL Aug 29, 2018
5ee8ec0
security: code cleanup and doxygen improvements in tpm::BackEndOsx
Pesa Sep 1, 2018
4b8eab7
build: drop dependency on unused CoreServices framework
Pesa Sep 2, 2018
fbda933
security: improve error handling in tpm::BackEndOsx
Pesa Sep 2, 2018
1748b1e
prefix-ann: provide ==, !=, << operators
yoursunny Sep 6, 2018
3c7969f
security: support 224-bit and 521-bit NIST elliptic curves
Pesa Sep 8, 2018
648ae9e
security: forbid RSA keys shorter than 2048 bits
Pesa Sep 8, 2018
e80d116
security: add support for SHA-3
Pesa Sep 8, 2018
cdb5d8f
ci: introduce helper to preserve select env variables under sudo
Pesa Sep 6, 2018
8bd3b8a
ci: add support for CentOS 7
ashiqopu Sep 1, 2018
e3ecad7
lp: remove lp::PrefixAnnouncement in favor of ndn::PrefixAnnouncement
philoL Aug 29, 2018
d2c750b
util: update bundled copy of optional-lite
Pesa Sep 16, 2018
a3bf431
Prepare release 0.6.3
cawka Sep 17, 2018
2cb33fa
net: remove deprecated ndn::ip::address{,V6}FromString
Pesa Sep 21, 2018
279f366
util: remove deprecated SegmentFetcher::fetch
agawande Aug 26, 2018
13fffa3
security: in tpm::BackEndOsx, unwrap the key before importing it
Pesa Sep 30, 2018
3e39a4d
security: use exponential backoff in CertificateFetcherFromNetwork
agawande Aug 30, 2018
ee77ca0
security: use AES-256 for private key encryption in PKCS #8 export
Pesa Oct 10, 2018
f714d1b
ci: workaround homebrew issues with python and numpy on Travis's macO…
Pesa Oct 14, 2018
7b11246
security: Throw exception when loading on orphaned ValidationPolicyCo…
cawka Oct 17, 2018
8b753a2
interest+data: forbid unrecognized TLV before Name
yoursunny Oct 24, 2018
241df42
encoding: support floating point numbers in TLV-VALUE
matianxing1992 Oct 10, 2018
679dbb0
util: add stop function to SegmentFetcher
agawande Aug 21, 2018
dca56ea
mgmt: augment ForwarderStatus with counters for satisfied and unsatis…
jupancs Oct 24, 2018
511712d
ci: fix another issue with preinstalled homebrew packages on Travis
Pesa Nov 3, 2018
8dfd913
data: remove deprecated {get,set}FinalBlockId()
Pesa Oct 28, 2018
17b61b4
util: backport C++17 std::any and std::variant
Pesa Nov 22, 2018
1bbce6d
ims: prevent memory pool size from becoming zero
agawande Nov 13, 2018
3e3a989
mgmt: Controller cleans up fetchers on destruction
agawande Nov 17, 2018
1944281
Rename 'src' directory to 'ndn-cxx'
Pesa Nov 23, 2018
74daf74
Rename 'tests/unit-tests' directory to 'tests/unit'
Pesa Nov 23, 2018
946a51c
util: stop using ChildSelector in NotificationSubscriber
yoursunny Nov 24, 2018
cf8a368
ci: install gcovr via apt
Pesa Nov 25, 2018
7e78064
Change #include style
Pesa Nov 24, 2018
2c1d349
docs: display the full include path in doxygen
Pesa Nov 25, 2018
24c5a00
impl: rename 'detail' to 'impl'
yoursunny Dec 12, 2018
d1fc9a7
detail: move common.hpp to 'detail'
yoursunny Dec 12, 2018
1e36ceb
detail: move packet-base|tag-host.hpp to 'detail'
yoursunny Dec 17, 2018
1d23ff9
detail: move asio-fwd to 'detail'
yoursunny Dec 17, 2018
70d76eb
transport: move Impl templates into 'detail'
yoursunny Dec 18, 2018
19b87de
detail: move cf-*-osx.hpp to 'detail'
yoursunny Dec 18, 2018
ebe156c
util: fix SegmentFetcher undefined behavior caused by uncanceled pend…
agawande Nov 12, 2018
534b841
docs: refresh installation instructions and general cleanup
Pesa Dec 9, 2018
64ae55d
build: ensure /usr/local/include is treated as system include path on…
Pesa Dec 19, 2018
22f7bc3
tests: don't throw if NetworkMonitor lacks CAP_ENUM
Pesa Dec 19, 2018
bfe3139
util: seed the PRNG with more entropy
Pesa Jan 3, 2019
c554551
Add git .mailmap
Pesa Jan 9, 2019
ec475a7
face: scoped prefix registration
yoursunny Jan 13, 2019
8db6152
util: add random::getRandomNumberEngine() to the public API
Pesa Jan 11, 2019
60aaef0
face: scoped Interest filter
yoursunny Jan 14, 2019
c53df03
lp: stop accepting NonNegativeInteger as sequence number
yoursunny Jan 14, 2019
ca48851
tests: delete goodness-of-fit tests from Util/TestRandom
Pesa Jan 18, 2019
6b99b6f
Add MetadataObject class to encode/decode RDR-style metadata
chavoosh Oct 26, 2018
322e76e
Use Boost.Range to simplify some code
Pesa Jan 17, 2019
4e0cc6c
security: Remove use of ChildSelector in CertificateBundleFetcher
cawka Jan 22, 2019
07115cc
util: reimplement scheduler::EventId with CancelHandle
yoursunny Jan 23, 2019
7c5bc1e
build: Upgrade waf build system to version 2.0.14
cawka Jan 29, 2019
80609d4
face: scoped pending Interest
yoursunny Jan 29, 2019
b72360f
Prepare release 0.6.5
cawka Jan 28, 2019
459a653
util: update bundled copies of {any,optional,variant}-lite
Pesa Feb 2, 2019
5c803b9
encoding: improve documentation of Block class
Pesa Feb 3, 2019
d0fef21
common: drop inclusion of unistd.h
Pesa Feb 5, 2019
8fdae89
build: Propagate DEFINES of dependent libraries to libndn-cxx.pc
cawka Feb 10, 2019
fd67401
util: introduce NDN_THROW
Pesa Feb 6, 2019
da9761f
face: don't use memory address as PendingInterestId
yoursunny Feb 11, 2019
4fdcb27
face: deprecate Id types in favor of Handles
yoursunny Feb 11, 2019
fccb2dc
encoding+interest: change Parameters to use non-critical type 36
Pesa Feb 9, 2019
923ba44
Replace all uses of BOOST_THROW_EXCEPTION with NDN_THROW
Pesa Feb 13, 2019
e209961
name-component: encode/decode Convention rev2
yoursunny Feb 15, 2019
77f1c76
build: do not look for unneeded libraries
Pesa Feb 19, 2019
fc27d3b
Fix build with Xcode 10.2
Pesa Mar 2, 2019
4fc9080
ci: update Travis-CI configuration
Pesa Feb 21, 2019
fd61231
util: add ndn::scheduler namespace alias
Pesa Mar 15, 2019
a5f233e
util: rename Scheduler::scheduleEvent to schedule
yoursunny Mar 18, 2019
1660d00
security: Add option to disable infrastructure interest in Certificat…
cawka Mar 18, 2019
5437aa2
tests: fix compilation with Boost 1.69.0
Pesa Mar 24, 2019
e7b90e5
face: rework list structures
yoursunny Mar 27, 2019
46b04a5
docs: improve README.md
Pesa Mar 29, 2019
4bb06bc
interest: improve the "CanBePrefix unset" warning
Pesa Apr 6, 2019
9c19a39
interest: rename Parameters to ApplicationParameters
Pesa Apr 6, 2019
3891244
interest: improve setApplicationParameters() behavior
Pesa Apr 7, 2019
fa995ac
docs+tools: improve ndnsec help, error messages, and manual page
Pesa Mar 28, 2019
b310efb
docs+ndnsec: improve description and parsing of command options, rewr…
Pesa Apr 12, 2019
78e3549
util: update bundled copies of {any,optional,variant}-lite
Pesa Apr 17, 2019
599ee3f
ci: adapt to new repo layout for CentOS boost RPMs
Pesa Apr 20, 2019
6b33040
encoding: treat TLV-TYPE zero as invalid
Pesa Apr 24, 2019
0c31537
Fix compilation with Boost 1.70.0
Pesa Apr 25, 2019
0d748af
Prepare release 0.6.6
cawka Apr 25, 2019
f1bb38d
util: move Scheduler and related classes to ndn::scheduler
Pesa Apr 29, 2019
fcdc873
net: NetworkMonitor: set NETLINK_CAP_ACK on netlink socket
Pesa Apr 28, 2019
2ec13eb
net: NetworkMonitor: improve handling of NLMSG_DONE
Pesa Apr 30, 2019
c9650e4
net: NetworkMonitor: use an enum to track the interface enumeration p…
Pesa Apr 30, 2019
5223ea8
net: use generic::raw_protocol instead of posix::stream_descriptor fo…
Pesa May 1, 2019
530c10f
net: use the correct netlink message payload to request an address dump
Pesa May 3, 2019
e37ec7d
net: NetworkMonitor: set NETLINK_GET_STRICT_CHK on netlink socket
Pesa May 3, 2019
3510d29
lp: add missing std::move to Nack constructor
Pesa May 10, 2019
2ad2fbe
interest: drop Selectors from matching functions
yoursunny May 24, 2019
0fe72ea
security: add HMAC support to SignerFilter and VerifierFilter
laqinfan May 22, 2019
77d9e81
security: remove unused KeyClass and AclType enums
Pesa Jun 4, 2019
4ad933a
util: add afterMeasurement signal to RttEstimator
Pesa Jun 3, 2019
48f9724
security: add PrivateKey::loadRaw() for HMAC keys
laqinfan Jun 3, 2019
3243c3d
util: Add a getter for the smoothed RTT value
emccrckn Jun 13, 2019
ccce0bc
mgmt: add EndpointId field to NextHopRecord class
jupancs Jun 3, 2019
1bac111
security: make PrivateKey::getKeySize() work in all cases
Pesa Jun 14, 2019
c816371
ci: add gcc-9 to Travis CI build matrix
Pesa Jun 23, 2019
57a3276
util: use time::nanoseconds in RttEstimator
Pesa Jun 24, 2019
8b0344d
examples: fix "CanBePrefix unset" warning and general cleanup
Zhiyi-Zhang Jun 22, 2019
cf0baa2
security: add signature verification support in TPM
laqinfan Jun 3, 2019
9a04dda
docs: write CertificateV2 and SafeBag syntax in ABNF
yoursunny Jul 2, 2019
700e12a
util: import nonstd::get into namespace ndn, for use with variant
Pesa Jul 3, 2019
ecfb391
Declare overloaded comparison operators as non-member functions
Pesa Jul 3, 2019
576b4ff
util: Make use of attributes in logging facilities
cawka Jul 6, 2019
adc9aa2
interest: add support for ParametersSha256DigestComponent
Pesa Jun 30, 2019
720e25c
detail: improve ScopedCancelHandle
Pesa Jul 14, 2019
2b0cc7b
interest: implement HopLimit encoding/decoding
Pesa Jul 14, 2019
65f697f
ims: drop support for ChildSelector
Pesa Jul 14, 2019
fe407f2
ci: add Xcode 11 to Travis CI build matrix
Pesa Jul 17, 2019
7b2f58c
util: Generalize logger backend support
cawka Jul 13, 2019
5149350
key-locator: reimplement using a sum type
Pesa Jul 17, 2019
43eac58
lp: introduce PIT token
yoursunny Aug 1, 2019
b3f78b5
Introduce NDN_CXX_UNREACHABLE macro
Pesa Aug 6, 2019
6c6e385
util: add io::loadBuffer and io::saveBuffer
Pesa Aug 6, 2019
92dbb00
Revert "mgmt: add EndpointId field to NextHopRecord class"
jupancs Aug 5, 2019
4c5b7b8
util: split RttEstimator into two classes
Pesa Aug 20, 2019
869b11e
util: backport std::to_underlying()
Pesa Aug 18, 2019
140e9cb
util: backport C++17 [[nodiscard]] attribute
Pesa Aug 19, 2019
ef654dd
Remove ill-defined equality operators (part 1)
Pesa Jul 19, 2019
0e0b389
interest: drop support for packet format v0.2
Pesa Jul 31, 2019
2fdb274
interest: update toUri() for packet format v0.3
Pesa Aug 1, 2019
75c5601
util: make overload() function public
Pesa Sep 1, 2019
28a5bf1
interest: minor cleanups
Pesa Sep 21, 2019
835f027
interest: don't force the generation of a nonce during decoding
Pesa Sep 21, 2019
cb67252
ci: upgrade Travis config to Ubuntu 18.04
Pesa Sep 23, 2019
5e494c0
security: accept HMAC keys shorter than the hash function's output le…
Pesa Sep 29, 2019
e6e125e
ci: output Travis folding markers for each build stage
Pesa Oct 8, 2019
56a812d
security: add HMAC support in KeyChain and SigningInfo
laqinfan Jun 3, 2019
73940c9
security: avoid potential undefined behavior in const_cast
Pesa Oct 13, 2019
bc997e5
security: add HMAC support in verification helpers
laqinfan Jun 26, 2019
12cef87
security: make BackEnd::Error an alias of Tpm::Error
Pesa Oct 31, 2019
4fb35d8
security: stop installing headers of concrete PIB, TPM, and KeyHandle…
Pesa Oct 31, 2019
0a6456c
security: don't throw when loading an empty validation policy
Pesa Nov 14, 2019
a421c80
face+transport: minor code cleanup
Pesa Nov 11, 2019
009062d
name: alternative URI syntax for component types used in naming conve…
Pesa Nov 20, 2019
39570d9
tests: fix Interest name in face integration test
Pesa Dec 10, 2019
39cb402
util: partial support for abstract types in NDN_LOG_MEMBER_* macros
Pesa Nov 25, 2019
7c67ab5
security: remove deprecated HmacFilter
Pesa Dec 10, 2019
813ae58
encoding: use boost::endian::endian_load() if available
Pesa Dec 17, 2019
21a4ea5
tests: avoid deprecated boost headers
Pesa Dec 22, 2019
a39c0b5
name: select canonical vs alternate URI representation
yoursunny Dec 31, 2019
cf8ffd4
Prepare release 0.7.0
cawka Dec 30, 2019
8a03a5f
[ndnSIM] util: Redirecting the scheduler of ndn-cxx to the scheduler …
cawka Feb 17, 2019
6425f86
[ndnSIM] util: Redirect logger to use the logging facility of NS3
spirosmastorakis Dec 6, 2016
1ae2d0c
[ndnSIM] face: Emulation mode of ndn::Face
spirosmastorakis Nov 29, 2016
257aaae
[ndnSIM] lp, face: Add lp::HopCountTagField
spirosmastorakis Dec 6, 2016
815b8d8
[ndnSIM] More intrusive changes removing use of boost::asio::io_service
cawka May 8, 2018
ab83a89
[ndnSIM] lp: Add GeoTag
spirosmastorakis Mar 25, 2017
3f89728
[ndnSIM] Correct encoding of HopCount
cawka Jul 29, 2019
aec5766
[ndnSIM] Fix bug in scheduler (use proper context when dispatching th…
cawka Oct 29, 2019
84d15aa
[ndnSIM] Fixes to be classified and shuffled in previous commits
cawka Feb 21, 2020
f2a5806
[ndnSIM] One more fix of the hacked scheduler
cawka May 31, 2020
9a716b7
updated version
SanzidaH May 14, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 22 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,18 +1,29 @@
# Emacs temp files
# Emacs
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
.\#*

# macOS stuff
.DS_*
# Visual Studio Code
.vscode/

# waf build system
.waf-1*
.waf3-*
.lock*
build/
# macOS
.DS_Store
.AppleDouble
.LSOverride
._*

# Waf build system
/build/
.waf-*-*/
.waf3-*-*/
.lock-waf*

# Compiled python code
*.pyc
*.pyo
__pycache__/
*.py[cod]

# Other
VERSION
/VERSION
23 changes: 20 additions & 3 deletions .jenkins
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,10 +1,27 @@
#!/usr/bin/env bash
set -e

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
nanos() {
# Cannot use date(1) because macOS does not support %N format specifier
python -c 'import time; print(int(time.time() * 1e9))'
}

for file in "$DIR"/.jenkins.d/*; do
for file in .jenkins.d/*; do
[[ -f $file && -x $file ]] || continue
echo "Run: $file"

if [[ -n $TRAVIS ]]; then
label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
echo -ne "travis_fold:start:${label}\r"
echo -ne "travis_time:start:${label}\r"
start=$(nanos)
fi

echo "\$ $file"
"$file"

if [[ -n $TRAVIS ]]; then
finish=$(nanos)
echo -ne "travis_time:end:${label}:start=${start},finish=${finish},duration=$((finish-start)),event=${label}\r"
echo -ne "travis_fold:end:${label}\r"
fi
done
41 changes: 37 additions & 4 deletions .jenkins.d/00-deps.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,47 @@ source "$JDIR"/util.sh
set -x

if has OSX $NODE_LABELS; then
FORMULAE=(boost pkg-config)
if [[ -n $USE_OPENSSL_1_1 ]]; then
FORMULAE+=([email protected])
else
FORMULAE+=(openssl)
fi

brew update
brew upgrade
brew install boost pkg-config cryptopp openssl
if [[ -n $TRAVIS ]]; then
# Travis images come with a large number of brew packages
# pre-installed, don't waste time upgrading all of them
for FORMULA in "${FORMULAE[@]}"; do
brew outdated $FORMULA || brew upgrade $FORMULA
done
else
brew upgrade
fi
brew install "${FORMULAE[@]}"
brew cleanup
fi

if has Ubuntu $NODE_LABELS; then
sudo apt-get -qq update
sudo apt-get -qq install build-essential pkg-config libboost-all-dev \
libcrypto++-dev libsqlite3-dev libssl-dev
sudo apt-get -qy install build-essential pkg-config libboost-all-dev \
libsqlite3-dev libssl-dev

if [[ $JOB_NAME == *"code-coverage" ]]; then
sudo apt-get -qy install gcovr lcov libgd-perl
fi
fi

if has CentOS-7 $NODE_LABELS; then
sudo yum -y install yum-utils pkgconfig \
openssl-devel libtranslit-icu \
python-devel sqlite-devel \
devtoolset-7-libasan-devel \
devtoolset-7-liblsan-devel
sudo yum -y groupinstall 'Development Tools'

svn checkout https://github.com/cmscaltech/sandie-ndn/trunk/packaging/RPMS/x86_64/boost1_58_0
pushd boost1_58_0 >/dev/null
sudo rpm -Uv --replacepkgs --replacefiles boost-devel* boost-license* libboost_*
popd >/dev/null
fi
44 changes: 24 additions & 20 deletions .jenkins.d/10-build.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -6,45 +6,49 @@ source "$JDIR"/util.sh

set -x

sudo rm -Rf /usr/local/include/ndn-cxx
sudo rm -f /usr/local/lib/libndn-cxx*
sudo rm -f /usr/local/lib/pkgconfig/libndn-cxx*
sudo rm -f /usr/local/bin/ndnsec*
sudo rm -fr /usr/local/include/ndn-cxx
sudo rm -f /usr/local/lib{,64}/libndn-cxx*
sudo rm -f /usr/local/lib{,64}/pkgconfig/libndn-cxx.pc

if [[ $JOB_NAME == *"code-coverage" ]]; then
COVERAGE="--with-coverage"
elif [[ -z $DISABLE_ASAN ]]; then
ASAN="--with-sanitizer=address"
fi
if [[ -n $USE_OPENSSL_1_1 ]] && has OSX $NODE_LABELS; then
OPENSSL="--with-openssl=/usr/local/opt/[email protected]"
fi

# Cleanup
sudo ./waf -j1 --color=yes distclean
sudo_preserve_env PATH -- ./waf --color=yes distclean

if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
# Configure/build static library in optimized mode with tests
./waf -j1 --color=yes configure --enable-static --disable-shared --with-tests
./waf -j1 --color=yes build
./waf --color=yes configure --enable-static --disable-shared --with-tests $OPENSSL
./waf --color=yes build -j${WAF_JOBS:-1}

# Cleanup
sudo ./waf -j1 --color=yes distclean
sudo_preserve_env PATH -- ./waf --color=yes distclean

# Configure/build static and shared library in optimized mode without tests
./waf -j1 --color=yes configure --enable-static --enable-shared
./waf -j1 --color=yes build
./waf --color=yes configure --enable-static --enable-shared $OPENSSL
./waf --color=yes build -j${WAF_JOBS:-1}

# Cleanup
sudo ./waf -j1 --color=yes distclean
sudo_preserve_env PATH -- ./waf --color=yes distclean
fi

# Configure/build shared library in debug mode with tests/examples and without precompiled headers
if [[ $JOB_NAME == *"code-coverage" ]]; then
COVERAGE="--with-coverage"
elif ! has OSX-10.9 $NODE_LABELS && ! has OSX-10.11 $NODE_LABELS; then
ASAN="--with-sanitizer=address"
fi
./waf -j1 --color=yes configure --disable-static --enable-shared --debug --with-tests --with-examples --without-pch $COVERAGE $ASAN
./waf -j1 --color=yes build
./waf --color=yes configure --disable-static --enable-shared --debug --with-tests \
--with-examples --without-pch $ASAN $COVERAGE $OPENSSL
./waf --color=yes build -j${WAF_JOBS:-1}

# (tests will be run against debug version)

# Install
sudo ./waf -j1 --color=yes install
sudo_preserve_env PATH -- ./waf --color=yes install

if has Linux $NODE_LABELS; then
sudo ldconfig
elif has FreeBSD $NODE_LABELS; then
sudo ldconfig -a
fi
4 changes: 3 additions & 1 deletion .jenkins.d/20-tests.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ ut_log_args() {
}

ASAN_OPTIONS="color=always"
ASAN_OPTIONS+=":detect_leaks=false"
ASAN_OPTIONS+=":detect_stack_use_after_return=true"
ASAN_OPTIONS+=":check_initialization_order=true"
ASAN_OPTIONS+=":strict_init_order=true"
Expand All @@ -41,5 +40,8 @@ ASAN_OPTIONS+=":strict_string_checks=true"
ASAN_OPTIONS+=":strip_path_prefix=${PWD}/"
export ASAN_OPTIONS

export BOOST_TEST_BUILD_INFO=1
export BOOST_TEST_COLOR_OUTPUT=1

# Run unit tests
./build/unit-tests $(ut_log_args)
23 changes: 22 additions & 1 deletion .jenkins.d/30-coverage.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,28 @@ set -x
if [[ $JOB_NAME == *"code-coverage" ]]; then
gcovr --object-directory=build \
--output=build/coverage.xml \
--filter="$PWD/src" \
--exclude="$PWD/(examples|tests)" \
--root=. \
--xml

# Generate also a detailed HTML output, but using lcov (better results)
lcov --quiet \
--capture \
--directory . \
--no-external \
--rc lcov_branch_coverage=1 \
--output-file build/coverage-with-tests.info

lcov --quiet \
--remove build/coverage-with-tests.info "$PWD/tests/*" \
--rc lcov_branch_coverage=1 \
--output-file build/coverage.info

genhtml --branch-coverage \
--demangle-cpp \
--frames \
--legend \
--output-directory build/coverage \
--title "ndn-cxx unit tests" \
build/coverage.info
fi
28 changes: 10 additions & 18 deletions .jenkins.d/40-standalone-header-compilation.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,29 @@
# (similar to running all test cases), instead of failing at the first error.

CXX=${CXX:-g++}
STD=-std=c++14
CXXFLAGS="-O2 -Wall -Wno-unused-const-variable -Wno-unused-local-typedef $(pkg-config --cflags libndn-cxx)"
INCLUDEDIR="$(pkg-config --variable=includedir libndn-cxx)"/ndn-cxx

STD=
if $CXX -xc++ /dev/null -o /dev/null -c -std=c++11 &>/dev/null; then
STD=-std=c++11
elif $CXX -xc++ /dev/null -o /dev/null -c -std=c++0x &>/dev/null; then
STD=-std=c++0x
fi

STDLIB=
if $CXX -xc++ /dev/null -o /dev/null -c $STD -stdlib=libc++ &>/dev/null; then
STDLIB=-stdlib=libc++
fi

echo 'Compiler flags:' $CXX $STD $STDLIB
echo "Using: $CXX $STD $CXXFLAGS"

INCLUDEDIR=/usr/local/include/ndn-cxx
NCHECKED=0
NERRORS=0
while IFS= read -r -d '' H; do
echo 'Verifying standalone header compilation for' $H
$CXX -xc++ "$INCLUDEDIR/$H" -o /dev/null -c $STD $STDLIB $(pkg-config --cflags libndn-cxx)
echo "Verifying standalone header compilation for ${H#${INCLUDEDIR}/}"
"$CXX" -xc++ $STD $CXXFLAGS -c -o /dev/null "$H"
[[ $? -eq 0 ]] || ((NERRORS++))
((NCHECKED++))
done < <(cd "$INCLUDEDIR" && find * -name '*.hpp' -type f -print0 2>/dev/null)
done < <(find "$INCLUDEDIR" -name '*.hpp' -type f -print0 2>/dev/null)

if [[ $NCHECKED -eq 0 ]]; then
echo 'No header found. Is ndn-cxx installed?'
exit 1
else
echo "$NCHECKED headers checked."
fi

if [[ $NERRORS -gt 0 ]]; then
echo $NERRORS 'headers cannot compile on its own'
echo "$NERRORS headers could not be compiled."
exit 1
fi
10 changes: 6 additions & 4 deletions .jenkins.d/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,21 @@ Environment Variables Used in Build Scripts

* `[OS_TYPE]`: `Linux`
* `[DISTRO_TYPE]`: `Ubuntu`
* `[DISTRO_VERSION]`: `Ubuntu-14.04`, `Ubuntu-16.04`
* `[DISTRO_VERSION]`: `Ubuntu-16.04`, `Ubuntu-18.04`

Possible values for OS X / macOS:
Possible values for macOS:

* `[OS_TYPE]`: `OSX`
* `[DISTRO_TYPE]`: `OSX` (can be absent)
* `[DISTRO_VERSION]`: `OSX-10.10`, `OSX-10.11`, `OSX-10.12`
* `[DISTRO_VERSION]`: `OSX-10.12`, `OSX-10.13`, `OSX-10.14`

- `JOB_NAME`: optional variable to define type of the job. Depending on the defined job type,
the build scripts can perform different tasks.

Possible values:

* empty: default build process
* `code-coverage` (Linux OS is assumed): debug build with tests and code coverage analysis
* `code-coverage` (Ubuntu Linux is assumed): debug build with tests and code coverage analysis
* `limited-build`: only a single debug build with tests

- `WAF_JOBS`: number of parallel build jobs used by waf, defaults to 1.
19 changes: 19 additions & 0 deletions .jenkins.d/util.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,22 @@ has() {
set ${saved_xtrace}
return ${ret}
}

sudo_preserve_env() {
local saved_xtrace
[[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
set +x

local vars=()
while [[ $# -gt 0 ]]; do
local arg=$1
shift
case ${arg} in
--) break ;;
*) vars+=("${arg}=${!arg}") ;;
esac
done

set ${saved_xtrace}
sudo env "${vars[@]}" "$@"
}
8 changes: 8 additions & 0 deletions .mailmap
Loading