File: __driver__.lua

package info (click to toggle)
monotone 1.1-9
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 20,984 kB
  • ctags: 8,622
  • sloc: cpp: 86,450; sh: 6,906; perl: 924; makefile: 813; python: 517; lisp: 379; sql: 118; exp: 91; ansic: 52
file content (42 lines) | stat: -rw-r--r-- 1,863 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

mtn_setup()

-- A few times in our history we've had to do data migration beyond
-- what the "db migrate" command can handle -- i.e., "db changesetify"
-- and "db rosterify".  We would like for it to be the case, that all
-- other commands give a nice error message if these commands need to
-- be run.  This test makes sure that monotone exits with an error if
-- given a db that appears to be very old.

-- The database dumps used here are "pre-migrated". They were run
-- through "db migrate" but still need "rosterify" or "changesetify"
-- to be run. But because they've already been migrated to a more
-- recent schema, "db migrate" doesn't know this. So it tries to
-- run regenerate_caches, which will E() about this just like any
-- other command should.
--
-- FIXME:
-- I suppose this is a good thing to test on its own, but there should
-- really also be a schema_migration_with_changesetify using "real"
-- pre-changeset db dumps, to go with schema_migration_with_rosterify.

check(get("changesetify.db.dumped", "stdin"))
check(mtn("-d", "cs-modern.db", "db", "load"), 0, false, false, true)
check(mtn("-d", "cs-modern.db", "db", "migrate"), 1, false, true)
check(qgrep("needs to be upgraded", "stderr"))

check(mtn("-d", "cs-modern.db", "ls", "keys"), 1, false, false)
check(mtn("-d", "cs-modern.db", "ls", "branches"), 1, false, false)


check(get("rosterify.db.dumped", "stdin"))
check(mtn("-d", "ro-modern.db", "db", "load"), 0, false, false, true)
check(mtn("-d", "ro-modern.db", "db", "migrate"), 1, false, true)
check(qgrep("project leader", "stderr"))

check(mtn("-d", "ro-modern.db", "ls", "keys"), 1, false, false)
check(mtn("-d", "ro-modern.db", "ls", "branches"), 1, false, false)

-- arguably "db regenerate_caches" should go here too -- it's treated
-- similarly.  But the test "schema_migration" tests for its behavior in this
-- case.