Commit Graph

43 Commits

Author SHA1 Message Date
Ben Kalman
03b7221c36 Use stretchr/testify not attic-labs/testify (#3677)
stretchr has fixed a bug with the -count flag. I could merge these
changes into attic-labs, but it's easier to just use strechr.

We forked stretchr a long time ago so that we didn't link in the HTTP
testing libraries into the noms binaries (because we were using d.Chk in
production code). The HTTP issue doesn't seem to happen anymore, even
though we're still using d.Chk.
2017-09-07 15:01:03 -07:00
Erik Arvidsson
eac2264193 Skip more perf suite tests (#3652)
Since these are flaky
2017-08-30 11:03:06 -07:00
Erik Arvidsson
a8d2ade6ac Skip TestRunFlag since it is flaky (#3651) 2017-08-30 10:32:32 -07:00
Rafael Weinstein
c3f98d1631 Remove in mem graphs (#3635)
This patch removes the ability to keep alive uncommitted prolly-tree sequences.
2017-08-29 13:12:10 -07:00
Rafael Weinstein
44941ee44c Refactor Blob reading (#3593) 2017-07-19 15:01:44 -07:00
Rafael Weinstein
22e5b323e4 List Editor (#3586) 2017-07-13 15:37:48 -07:00
Rafael Weinstein
fe0fc3ad86 Introduce SetEditor, Nestable Editors (#3557) 2017-06-21 15:22:04 -07:00
Rafael Weinstein
1796d2f865 Streaming p tree updates + Map Editor (#3545) 2017-06-15 15:49:04 -07:00
Rafael Weinstein
de6b9294f3 Database refactor (#3428)
* merge LocalDatabase, DatabaseCommon & RemoteDatabaseClient

* moar
2017-04-26 13:35:54 -07:00
cmasone-attic
16ef8884a7 Make MemoryStore come correct (#3406)
It's important that MemoryStore (and, by extension TestStore)
correctly implement the new ChunkStore semantics before we go
shifting around the Flush semantics like we want to do in #3404

In order to make this a reality, I introduced a "persistence"
layer for MemoryStore called MemoryStorage, which can vend
MemoryStoreView objects that represent a snapshot of the
persistent storage and implement the ChunkStore contract.

Fixes #3400

Removed Rebase() in HandleRootGet, and added ChunkStore
tests to validate the new Put behavior more fully
2017-04-21 14:13:52 -07:00
Rafael Weinstein
5d6032a9aa Add types.MakeStructTemplate (#3412)
Add types.MakeStructTemplate
2017-04-20 14:41:57 -07:00
Erik Arvidsson
fd815b10ad Compute type based on value (#3338)
This moves the type off from the value and instead we compute it as we ask for.

This also changes how we detect cycles. If a named struct contains a struct with the
same name we now create a cycle between them. This also means that cycle types
now take a string and not a number.

For encoding we no longer write the type with the value (unless it is a types.Ref).

This is a format change so this takes us to 7.6

Fixes #3328
Fixes #3325
Fixes #3324
Fixes #3323
2017-04-06 17:43:49 -07:00
Erik Arvidsson
d4b412fa1f Rename MakeStructType2 to MakeStructType (#3304)
and remove the old MakeStructType
2017-03-29 15:04:26 -07:00
Erik Arvidsson
22f70f585d Optional fields (#3287)
This adds optional fields to structs.

New version: 7.4

To create a struct type with optional fields use types.MakeStructType2

There are some API changes in this commit and there will be some more in followup commits.

Fixes #2327
2017-03-27 16:54:04 -07:00
cmasone-attic
5025a45b0b Remove usages of LevelDBStore (#3190)
NBS is stable enough that we've made it the default store for command
line tools, and the go-to store for tests that require temporary, but
persistent, storage.

We intend to remove support for LevelDB-backed chunk storage
completely ASAP. This patch removes all usage of LevelDBStore from
noms.git, but doesn't remove LevelDBStore _just_ yet as there are
still some dependencies on it elsewhere.

Toward #3127
2017-02-14 19:49:23 -08:00
Rafael Weinstein
01303a828d go read ahead (#3046) 2017-01-10 15:28:26 -08:00
Ben Kalman
cdfbee1b3d Remove spec GetDataset/GetDatabase/GetPath, update all clients (#2815)
These are now ForDataset/ForDatabase/ForPath.
2016-11-09 17:34:39 -08:00
Ben Kalman
9f5725bd27 Run url-fetch perf tests against a fresh database each time
The subsequent runs of url-fetch on jenkins are way faster, and this
appears to be because commiting is much faster on subsequent runs. The
perf tests now use a new database each time.
2016-09-29 12:49:37 -07:00
Ben Kalman
81673c2591 Add perf test for url-fetch 2016-09-27 16:52:54 -07:00
cmasone-attic
2e462b11a5 Make Database a mutable API that vends immutable Datasets (#2617)
Noms SDK users frequently shoot themselves in the foot because they're
holding onto an "old" Database object. That is, they have a Database
tucked away in some internal state, they call Commit() on it, and
don't replace the object in their internal state with the new Database
returned from Commit.

This PR changes the Database and Dataset Go API to be in line with the
proposal in Issue #2589. JS follows in a separate patch.
2016-09-26 12:18:14 -07:00
Ben Kalman
5dc8ae8388 Support -perf.run flag for perf tests, filters by regexp 2016-09-23 11:26:17 -07:00
Ben Kalman
da336c3aab Introduce List.Concat to the Go API (#2550)
It exploits the chunked structure of Lists to allow concatenating
arbitrarily large Lists.

I've added both functional and perf tests for Concat, and the perf tests
only made sense with tests for building and reading Lists, so now we
have those too.
2016-09-14 14:15:14 -07:00
Erik Arvidsson
5edf89cf3d Replace d.Chk.True with d.PanicIfFalse (#2563)
And same for d.Chk.False
2016-09-14 13:11:28 -07:00
Dan Willhite
57f653dd39 Disable perf suite check for nomsRevision (#2508)
This needs to be disabled so that test cases succeed when
building demo-server. Currently this fails because we build
with CodePipeline so the source code is not in a git repo
when getting built.
2016-09-02 10:53:18 -07:00
Ben Kalman
0f6cc2023c Print skipped perf tests in verbose mode (#2497) 2016-09-01 16:22:23 -07:00
Ben Kalman
9c694f024b Add a perf test for CSV map import (#2461)
Currently we only have a perf test for CSV list import, which uses the
sf-crime dataset. This test uses the 43MB sf-registered-businesses
dataset instead, since sf-crime is too slow. Which is ironic, since we
normally parse sf-crime into a map.

I've also tightened up some of the other perf tests.
- Fixed a bug where Database was shared between runs.
- Make the pure CSV parsing test use a smaller dataset, it doesn't need
  to use something as large as ny-vehicle-registrations.
2016-08-31 17:05:00 -07:00
Ben Kalman
572f2dcc0d Make the Go doc for go/perf/suite look idiomatic (#2469)
I hope.

We should stop using Markdown syntax in our public Go docs. godoc
doesn't recognise it (https://godoc.org/github.com/fluhus/godoc-tricks
is a reasonable summary of what *is* supported).

This patch:
 - Wraps comments at 100 characters, because godoc doesn't do wrapping.
 - Replaces triple-backtick blocks with indented blocks.
 - Removes single-backtick lines entirely.
 - Lines things up better.
 - An unfortunate side-effect is bullet points are monospaced in
   godoc.org, but there isn't a way around this.
2016-08-30 17:12:38 -07:00
Mike Gray
2f66e67763 fixing misspellings, fixing IneffAssign reported issues (#2436)
also removing encode-perf-rig since codec-perf-rig is more current and real
2016-08-25 13:32:34 -04:00
Ben Kalman
a6172c8d21 Support a -perf.prefix flag for perf tests (#2417)
This prepends a prefix to every dataset ID written by perf tests. It
will be used for namespacing the test results for different PRs.
Currently they're written to different databases, which isn't as good.
2016-08-23 15:01:30 -07:00
Mike Gray
4e54c44d56 no functional changes, improving code quality (#2410)
fix misspellings; fix code that was not gofmt'd - plus take advantage of gofmt -s too; couple of unreachable golint reported fixes; reference go report card results and tests
2016-08-23 13:51:38 -04:00
Ben Kalman
892f98050e Make perf suite testdata path configurable by -perf.testdata flag (#2406)
Needed by Jenkins shared workspaces.
2016-08-22 16:40:27 -07:00
Ben Kalman
b350b13303 Use new Go-to-Noms map marshalling in perf suite (#2392) 2016-08-20 18:43:37 -07:00
Ben Kalman
064c398dec Add perf test suite infrastructure, and a perf test for csv-import (#2384)
You can run these yourself using the -perf flag, e.g.

> noms serve &
> go test -v -perf http://localhost:8000 ./samples/go/csv/csv-import
> noms ds http://localhost:8000

Though you'll need to go-get github.com/attic-labs/testdata.

Note that all of this only records test results, it doesn't have any
concept of failing perf (unless test assertsions themselves fail). It
will be the job of some other Noms client (work in progress) to do that.

I will be setting this up to run continuously momentarily.
2016-08-18 15:49:21 -07:00
Sungguk Lim
6697c2e6fc Replace github.com/tsuru/gnuflag with github.com/juju/gnuflag (#2340)
Replace vendor folder and where it is used.
2016-08-11 10:29:57 -07:00
Erik Arvidsson
ed0364cc19 Switch to gnuflag (#2206)
This is to support:
- shorthands
- Putting commands anywhere (after positional arguments too)
2016-07-29 18:08:23 -07:00
Erik Arvidsson
984fef226f Change dataset CommitWithParents to Commit with options (#2095)
The new API is `ds.Commit(value, CommitOptions{Parents: p})`

Related to #2012
2016-07-19 14:30:59 -07:00
Rafael Weinstein
df6bcf8111 remove codec-perf-rig binary (#2063) 2016-07-14 15:14:06 -07:00
Rafael Weinstein
ee5c0f3a72 MakeStructType and NewStructWithType now takes slices rather than maps (#1945)
NewStructType and NewStructWithType now takes slices rather than maps
2016-07-07 16:36:48 -07:00
Rafael Weinstein
c38c884810 Checking last codec perf numbers (#1986) 2016-07-07 15:18:28 -07:00
Mike Gray
a7f29a716d noms as one command line application, with version and help (#1874) 2016-07-06 15:38:25 -04:00
Aaron Boodman
1d752e3101 Update license: Noms will be copyright Attic Labs. (#1976) 2016-07-05 22:07:42 -07:00
Rafael Weinstein
02be382799 cleanup error output (#1965) 2016-07-05 14:03:56 -07:00
Aaron Boodman
2386afc7fb Move stuff that is not samples out of samples directory (#1943)
* Move samples/go/*perf-reg to go/perf/

They aren't really samples.

* Move samples/go/util/check_error.go to go/d

* Remove samples/go/util/client_flags.go - unused

* remove httpcache.go - unused

* Remove samples/go/util/rungen.go - no generated code here anymore

* move NomsValueFromJSON to go/util/jsontonoms
2016-07-01 11:04:17 -07:00