1. 20 May, 2017 2 commits
  2. 26 Apr, 2017 3 commits
    • dgrisham's avatar
      tests: bitswap ledger tests modified · b649f755
      dgrisham authored
      Updated the `TestBitswapLedger*` tests and added assertions to check concrete
      values for ledgers (rather than just checking that two peers' ledgers match).
      The names for these tests were also changed from the previous commit, according
      to 's/BytesSent/Ledger/'.
      
      License: MIT
      Signed-off-by: default avatarDavid Grisham <dgrisham@mines.edu>
      b649f755
    • dgrisham's avatar
      tests + data dependency fix: `BytesSent` bug now completely fixed · ca0df116
      dgrisham authored
      Tests were added to ensure that the bug fix in commit 000fbd25 was correct.
      The tests caught an error where a peer's ledger was not properly locked when
      updating it in the `MessageSent()` function. The appropriate calls to lock the
      ledger were made, and the tests successfully passed.
      
      License: MIT
      Signed-off-by: default avatarDavid Grisham <dgrisham@mines.edu>
      ca0df116
    • dgrisham's avatar
      bug fix: `BytesSent` in peers' ledgers now updates · bc9342bf
      dgrisham authored
      When sending data to another user, the number of bytes sent to that user (saved
      by the corresponding Bitswap ledger) was not updated (it was always 0). This
      also meant that the debt ratio was also always 0.
      
      The function that updates the `BytesSent` value in the ledger, `MessageSent()`,
      was already implemented, however it was not called when the peer was sent data.
      To fix this, a call to `MessageSent()` was made in the `taskWorker()` function,
      which is where both the message in question and the Bitswap engine were
      available to make the call. `MessageSent()` requires the peer's ID and
      `BitSwapMessage` as its arguments, the latter of which had to be created by
      making a new `BitSwapMessage`, then the block being sent was added to the new
      message.
      
      Note that, similar to the analagous call to `MessageReceived()`, records *all*
      of the bytes sent to a particular user. At some point, both of these should be
      updated to only record the numbers of *useful* bytes sent and received between
      peers.
      
      License: MIT
      Signed-off-by: default avatarDavid Grisham <dgrisham@mines.edu>
      bc9342bf
  3. 20 Apr, 2017 1 commit
  4. 29 Mar, 2017 1 commit
  5. 24 Mar, 2017 1 commit
  6. 06 Mar, 2017 3 commits
  7. 02 Mar, 2017 4 commits
  8. 22 Feb, 2017 1 commit
  9. 12 Feb, 2017 2 commits
    • Jeromy's avatar
      update go-multihash and bubble up deps · 9d4dee74
      Jeromy authored
      License: MIT
      Signed-off-by: default avatarJeromy <jeromyj@gmail.com>
      9d4dee74
    • Jakub Sztandera's avatar
      make: rework makefiles for non-recursive make and add sharness coverage · 77a6c312
      Jakub Sztandera authored
      This commit introduces non-recursive Makefile infrastructure that replaces current Makefile infrastructure.
      It also generally cleanups the Makefiles, separates them into nicer sub-modules and centralizes common operations into single definitions.
      
      It allows to depend on any target that is defined in the makefile, this means that for example `gx install` is called once when `make build test_expensive_sharness` is called instead of 4 or 5 times.
      
      It also makes the dependencies much cleaner and allows for reuse of modules. For example sharness coverage collection (WIP) uses sharness target with amended PATH, previously it might have been possible but not without wiring in the coverage collection into sharness make runner code.
      
      Yes, it is more complex but not much more. There are few rules that have to be followed and few complexities added but IMHO it is worth it.
      
      How to NR-make:
      1. If make is to generate some file via a target, it MUST be defined in Rules.mk file in the directory of the target.
      2. `Rules.mk` file MUST have `include mk/header.mk` statement as the first line and `include mk/footer.mk` statement as the last line (apart from project root `Rules.mk`).
      3. It then MUST be included by the closest `Rules.mk` file up the directory tree.
      4. Inside a `Rules.mk` special variable accessed as `$(d)` is defined. Its value is current directory, use it so if the `Rules.mk` file is moved in the tree it still works without a problem. Caution: this variable is not available in the recipe part and MUST NOT be used. Use name of the target or prerequisite to extract it if you need it.
      5. Make has only one global scope, this means that name conflicts are a thing. Names SHOULD  follow `VAR_NAME_$(d)` convention. There are exceptions from this rule in form of well defined global variables. Examples: General lists `TGT_BIN`, `CLEAN`; General targets: `TEST`, `COVERAGE`; General variables: `GOFLAGS`, `DEPS_GO`.
      3. Any rules, definitions or variables that fit some family SHOULD be defined in `mk/$family.mk` file and included from project root `Rules.mk`
      
      License: MIT
      Signed-off-by: default avatarJakub Sztandera <kubuxu@protonmail.ch>
      77a6c312
  10. 10 Jan, 2017 1 commit
  11. 27 Dec, 2016 1 commit
  12. 07 Dec, 2016 1 commit
  13. 05 Dec, 2016 1 commit
  14. 02 Dec, 2016 1 commit
  15. 30 Nov, 2016 2 commits
  16. 29 Nov, 2016 3 commits
  17. 28 Nov, 2016 1 commit
  18. 27 Nov, 2016 1 commit
  19. 22 Nov, 2016 2 commits
  20. 16 Nov, 2016 1 commit
  21. 11 Nov, 2016 1 commit
  22. 06 Nov, 2016 1 commit
  23. 04 Nov, 2016 1 commit
  24. 02 Nov, 2016 1 commit
  25. 31 Oct, 2016 1 commit
  26. 28 Oct, 2016 1 commit
  27. 25 Oct, 2016 1 commit