Michael Stapelberg
06a9820b5f
t/166-assign: check for i3-nagbar in the process hierarchy instead of sleep(1)
2012-02-21 13:58:49 +01:00
Michael Stapelberg
7e05a0700a
tests: don’t wait for window map event in open_special
...
Since the window doesn’t get mapped at all in these tests (it’s assigned to an
invisible workspace), this saves us a timeout of 2 seconds :).
2012-02-21 13:40:53 +01:00
Michael Stapelberg
ab9ba6fcf9
Use gettimeofday() and struct timevals instead of time()
...
Initially I thought using the second precision time() function is good enough,
but to make t/113-urgent.t considerably faster (>2s vs. 0.08s), we put in a
little more effort and use gettimeofday. Otherwise, this test blocks the whole
testsuite from completing much faster on modern machines :).
2012-02-21 13:38:49 +01:00
Michael Stapelberg
a2d80c4ab9
tests: add a testcase for the floating size constraints
2012-02-16 18:43:47 +00:00
Michael Stapelberg
e114b3dba2
Refactor the interface of commands.c
...
This change has two implications:
1) tree_render() will now be called precisely once for input which consists of
multiple commands (like "focus left; focus right"). Also, the caller of
parse_command() has to call it. This makes us able to fix tickets such as
ticket #608 (where multiple tree_render() calls are noticable).
2) The output of a command is now a JSON array of return values of the
individual subcommands. In the case of "focus left; focus right", this is:
[{"success":true}, {"success":true}]
While this is incompatible with what i3 returned before, the return value of
commands was undocumented and therefore not subject to our API stability.
2012-02-15 20:57:25 +00:00
Michael Stapelberg
19f3f84d29
tests: add test for previous commit
2012-02-15 18:08:53 +00:00
Michael Stapelberg
6d0dcf06ef
tests: make t/504-move-workspace-to-output consistent with the previous commit
2012-02-15 18:02:02 +00:00
Michael Stapelberg
974e70459d
tests: add a test for the urgent= criteria
2012-02-14 22:47:40 +00:00
Michael Stapelberg
82247fd0ab
Bugfix: Correctly handle missing ending double quotes (+test) (Thanks mxf)
2012-02-10 19:49:38 +00:00
Michael Stapelberg
2f8d3d3390
Bugfix: Properly handle workspace names with double quotes (+test) (Thanks kvapen)
2012-02-07 22:50:27 +00:00
Michael Stapelberg
ed2bcc15e3
Merge branch 'master' into next
2012-02-07 17:42:58 -05:00
Michael Stapelberg
0fc459892e
Bugfix: Properly split when the current container is alone within a stacked/tabbed con (+test) (Thanks aksr)
...
Fixes : #630
2012-02-07 17:42:35 -05:00
Michael Stapelberg
4fe974408d
Merge branch 'master' into next
2012-02-07 17:41:36 -05:00
Michael Stapelberg
4f98bbf5ff
Bugfix: Obey workspace_layout when re-inserting floating containers (+test) (Thanks aksr)
...
The code wasn’t using con_attach and therefore didn’t obey workspace_layout.
Fixes : #631
2012-02-07 17:41:00 -05:00
Michael Stapelberg
efa1cada29
tests: Make i3 create its temporary files in /tmp/i3-testsuite
...
This behavior can be avoided by passing dont_create_temp_dir => 1 to
launch_with_config (or activate_i3).
This commit fixes t/159-socketpaths.t being flaky on non-systemd computers.
2012-02-07 17:38:45 -05:00
Michael Stapelberg
8a57cb48c8
testcases: requires Test::More >= 0.94 (for subtests)
2012-01-29 18:03:03 +00:00
Michael Stapelberg
d22458cde0
complete-run: make --valgrind, --strace, --coverage-testing work again
2012-01-27 21:36:40 +00:00
Michael Stapelberg
19dc92a9a5
new parser: correctly handle leading/trailing newlines (+test) (Thanks helgikrs)
2012-01-25 22:00:32 +00:00
Michael Stapelberg
318d4fdeef
make in-place restarts use socket activation, too (for faster/less flaky tests)
2012-01-21 23:03:09 +00:00
Michael Stapelberg
3b7f4d428e
Correctly restore focus after in-place restarts
...
Note: This change requires two in-place restarts when you are upgrading
in-place from an old version.
Fixes #611
2012-01-21 18:35:15 +00:00
Michael Stapelberg
fc27c19761
Merge branch 'master' into next
...
Conflicts:
testcases/t/005-floating.t
2012-01-21 14:22:29 +00:00
Michael Stapelberg
cb4c9b9d27
Bugfix: Position floating windows exactly where their geometry specified (Thanks B-Con)
...
Fixes #619
2012-01-21 14:20:55 +00:00
Michael Stapelberg
45b4d71a0b
handle the old bar color config syntax in a backwards-compatible way
2012-01-20 22:26:17 +00:00
Michael Stapelberg
31b7ec29fd
Re-implement bar borders (by Angelo Haller)
...
This re-introduces borders around the workspace buttons in i3bar.
No additional pixels will be consumed (you will not lose any space for your
windows).
2012-01-20 21:36:50 +00:00
Michael Stapelberg
a532f5ac39
Implement a new parser for commands. (+test)
...
On the rationale of using a custom parser instead of a lex/yacc one, see this
quote from src/commands_parser.c:
We use a hand-written parser instead of lex/yacc because our commands are
easy for humans, not for computers. Thus, it’s quite hard to specify a
context-free grammar for the commands. A PEG grammar would be easier, but
there’s downsides to every PEG parser generator I have come accross so far.
This parser is basically a state machine which looks for literals or strings
and can push either on a stack. After identifying a literal or string, it
will either transition to the current state, to a different state, or call a
function (like cmd_move()).
Special care has been taken that error messages are useful and the code is
well testable (when compiled with -DTEST_PARSER it will output to stdout
instead of actually calling any function).
During the migration phase (I plan to completely switch to this parser before
4.2 will be released), the new parser will parse every command you send to
i3 and save the resulting call stack. Then, the old parser will parse your
input and actually execute the commands. Afterwards, both call stacks will be
compared and any differences will be logged.
The new parser works with 100% of the test suite and produces identical call
stacks.
2012-01-14 21:29:57 +00:00
Michael Stapelberg
f81c89ac28
Refactor the code out of src/cmdparse.y to src/commands.c
...
This is the first step towards our new parser.
2012-01-14 16:59:52 +00:00
Michael Stapelberg
814695d8bb
Implement 'move workspace to output <output>'
...
Fixes : #541
2012-01-10 22:16:50 +00:00
Michael Stapelberg
a4a59a797f
tests: use open_window to avoid motion notifies which in turn trigger endless loops
...
Using 'open' will not create an X11 window (while open_window does), so we will
get spurious motion notify events when switching focus, leading to endless loops.
2012-01-10 22:16:09 +00:00
Michael Stapelberg
df9b338175
Introduce synonyms: 'move to workspace' and 'move container to workspace' and 'move window to workspace'
...
This makes the new 'move workspace to output' command much more clear
2012-01-10 22:16:09 +00:00
Michael Stapelberg
6585d289cf
add testcase for workspace next_on_output/prev_on_output
2012-01-08 16:33:16 +00:00
Michael Stapelberg
6e4a86b7d1
tests: make focused_ws multi-monitor-safe, document it
2012-01-08 16:32:58 +00:00
Michael Stapelberg
07d07719f0
add testcase for 'focus output'
2012-01-08 11:59:24 +00:00
Michael Stapelberg
470ee00012
Merge branch 'master' into next
2012-01-07 18:50:46 +00:00
Michael Stapelberg
d4238c778a
Bugfix: Open new windows in the correct place when assignments match (+test) (Thanks Don)
2012-01-07 18:50:00 +00:00
Michael Stapelberg
6345124049
Merge branch 'master' into next
...
Conflicts:
src/con.c
2012-01-07 18:21:12 +00:00
Michael Stapelberg
f78caf8c58
Bugfix: Don’t lose focus on fullscreen windows when another window gets moved to that workspace (+test) (Thanks rami)
...
Fixes : #606
2012-01-07 18:18:36 +00:00
Michael Stapelberg
0e1b1dd984
Bugfix: Correctly handle 'move scratchpad' on workspace level (+test) (Thanks mseed)
...
Fixes : #597
2012-01-07 17:36:30 +00:00
Michael Stapelberg
3254188cda
Bugfix: Show scratchpad on the correct output (+test)
...
Fixes : #596
2012-01-07 16:53:37 +00:00
Michael Stapelberg
ed37a63942
tests: add scratchpad test
2012-01-05 21:41:23 +00:00
Michael Stapelberg
91499ed2c7
properly serialize floating/scratchpad state when restarting
2012-01-05 21:41:20 +00:00
Michael Stapelberg
ec7ed75c01
tests: make t/143 actually verify floating windows are restored properly
2012-01-05 21:20:53 +00:00
Michael Stapelberg
dd9743b272
tests: Implement multi-monitor tests using Xdmx
2011-12-26 20:48:57 +01:00
Michael Stapelberg
08986a1798
Implement scratchpad functionality (see userguide)
2011-12-21 23:15:32 +00:00
Michael Stapelberg
311b9e24df
tests: implement restart testing (actual option still missing)
2011-12-21 23:15:30 +00:00
Michael Stapelberg
622b94f176
Merge branch 'master' into next
2011-12-20 18:44:26 +00:00
Michael Stapelberg
d963018990
Bugfix: Don’t close workspace when there are still floating windows on it (Thanks noxxun) (+test)
...
Fixes : #595
2011-12-20 18:44:15 +00:00
Michael Stapelberg
1f2c9306a2
Merge branch 'master' into next
...
Conflicts:
testcases/t/159-socketpaths.t
2011-12-18 18:02:08 +00:00
Michael Stapelberg
c21172a6f6
Create a secure temp path instead of a predictable one (Thanks Han)
...
With this commit, i3 will now use either $XDG_RUNTIME_DIR/i3 (XDG_RUNTIME_DIR
is only writable by the user, so this is not a problem) or a secure temporary
location in /tmp, following the pattern /tmp/i3-<user>.XXXXXX
2011-12-18 17:59:31 +00:00
Michael Stapelberg
2ba09f5419
Merge branch 'master' into next
2011-12-18 15:19:09 +00:00
Michael Stapelberg
ec28f3b982
Bugfix: Fix floating resize for floating split containers (+test)
...
Fixes : #588
2011-12-18 15:18:20 +00:00
Michael Stapelberg
a930994dc9
Merge branch 'master' into next
2011-12-17 17:16:39 +00:00
Michael Stapelberg
75c57c4eef
Bugfix: Ignore ConfigureRequests with out-of-bound coordinates (+test)
...
JDownloader seems to use these for its captcha popups when focus is not on the
same workspace, for some weird reason.
2011-12-17 17:15:52 +00:00
Michael Stapelberg
db174234ce
Merge branch 'master' into next
...
Conflicts:
debian/changelog
2011-12-17 15:28:51 +00:00
Michael Stapelberg
1ff321bc3f
Bugfix: Disallow focusing other windows when in fullscreen mode (Thanks aksr)
...
Fixes : #579
2011-12-17 15:28:17 +00:00
Michael Stapelberg
ef224cdb98
Merge branch 'master' into next
...
Conflicts:
testcases/t/173-get-marks.t
2011-12-17 14:22:57 +00:00
Michael Stapelberg
b46ab649f5
Bugfix: Fix setting the same mark repeatedly on different windows (+test)
...
Fixes : #582
2011-12-17 14:22:23 +00:00
Michael Stapelberg
69b143e5ca
complete-run: automatically display test output when running a single test
2011-12-17 11:20:32 +00:00
Michael Stapelberg
95508c3469
complete-run: fix uninitialized warning
2011-12-17 11:20:16 +00:00
Michael Stapelberg
81f4b6fc1a
complete-run: don’t parallelize more than the number of tests
2011-12-17 11:19:31 +00:00
Michael Stapelberg
da8d0baa74
tests: add test for previous commit
2011-12-17 11:18:43 +00:00
Michael Stapelberg
1c72e8b69e
Make complete-run store the timings, schedule tests and print time estimate
...
Yay for self-optimizing software and time estimates
2011-12-16 22:00:41 +00:00
Michael Stapelberg
87d98a128f
tests: disable SHM logging, we redirect anyways
2011-12-10 11:32:15 +00:00
Maik Fischer
9a7d7919a6
testcases: introduce TestWorker.pm
...
instead of executing a new perl interpreter (via TAP::Parser)
each time we start a testfile, fork a TestWorker for each display.
Each worker preloads i3test via 'require', blocking waits on its ipc
to get a new filename, forks itself upon arrival and 'do'es this
testscript.
2011-12-04 14:14:20 +01:00
Maik Fischer
55c474d864
testcases: move Xdummy cleanup code to StartXDummy
2011-12-04 14:14:20 +01:00
Maik Fischer
43b8b8356d
complete-run: add cleanup sighandler
2011-12-04 14:14:20 +01:00
Maik Fischer
2d188bfc9b
complete-run: reorder code to make code flow more clear
2011-12-04 14:14:20 +01:00
Maik Fischer
6a5ca32c5a
complete-run: die if X11::XCB couldn’t connect to a display
2011-12-04 14:14:20 +01:00
Maik Fischer
8349190e09
testcases: always start i3 through i3test::launch_with_config
...
this will pave the way to just call BAIL_OUT and stop the currently
running testfile if i3 died for whatever reason.
2011-12-04 14:14:20 +01:00
Maik Fischer
e8d2fbbac8
testcases: Makefile.PL: NAME =~ s/ /-/
...
since NAME is used to generate targets,
a space will lead to invalid syntax eg:
Makefile:547: warning: overriding commands for target `i3'
Makefile:536: warning: ignoring old commands for target `i3'
2011-12-04 14:14:20 +01:00
Maik Fischer
423b891995
StartXdummy.pm: make Xdummy startup a bit more robust
2011-12-04 14:14:20 +01:00
Michael Stapelberg
0f9fbcbd25
Merge branch 'master' into next
2011-11-29 22:37:11 +00:00
Michael Stapelberg
626e3efb48
Bugfix: Fix 'resize' command in nested containers (Thanks mseed)
...
Fixes : #559
2011-11-29 22:36:40 +00:00
Michael Stapelberg
f5dce848b8
Merge branch 'master' into next
2011-11-26 22:18:01 +00:00
Michael Stapelberg
31acb91d90
Bugfix: Fix crash on '[class="i3bar"] focus' (+test) (Thanks f8l)
...
Fixes #575
2011-11-26 22:17:34 +00:00
Michael Stapelberg
5c59c0296c
tests: add test for ticket #561 (floating window size when changing border)
2011-11-26 21:20:00 +00:00
Maik Fischer
475dc3c532
testcases: use open_window everywhere
2011-11-23 20:33:44 +00:00
Maik Fischer
ec877f2ec4
i3test.pm: add before_map hook to open_window
2011-11-23 20:33:44 +00:00
Maik Fischer
9b8d9f7303
i3test.pm: open_(floating_)window: take arguments as hashref or key-value list
2011-11-23 20:33:44 +00:00
Maik Fischer
c2229b905a
testcases: replace sleep with sync_with_i3 where appropiate
2011-11-23 20:33:44 +00:00
Maik Fischer
33e9c29022
testcases: t/144-*: use open_window instead of launching urxvt
2011-11-23 20:33:44 +00:00
Maik Fischer
6bf13b413e
testcases: t/116-*: reinvent ignore() from Test::Deep
2011-11-23 00:03:09 +00:00
Maik Fischer
2f36351ab3
testcases: Makefile.PL: fix tabbing
2011-11-23 00:03:06 +00:00
Maik Fischer
372b98d08e
testcases: drop EV dependency
2011-11-23 00:03:00 +00:00
Maik Fischer
8d83697cc2
testcases: use Test::More is_deeply, don't depend on Test::Deep
2011-11-23 00:02:57 +00:00
Maik Fischer
3a9d94bba4
testcases: don't sync_with_i3() before $x->input_focus
...
since input_focus calls it anyways
2011-11-23 00:02:54 +00:00
Maik Fischer
0702f1fb7b
testcases: drop sync_with_i3()s $x parameter, use global
2011-11-23 00:02:50 +00:00
Maik Fischer
293517fb2e
testcases: drop open_floating_window()s $x parameter, use global
2011-11-23 00:02:47 +00:00
Maik Fischer
fce7570f96
testcases: drop open_window()s $x parameter, use global one instead
2011-11-21 23:51:04 +00:00
Maik Fischer
e9acd36ce4
t/005-floating.t: fix potentional race condition
2011-11-21 23:51:01 +00:00
Maik Fischer
da403b3667
testcases: use $x in wait_for_(un)map change to wait_for_(un)map($win)
...
wait_for_unmap currently ignores its $window parameter, since
X11::XCB doesn't provide $event->{window} for unmap events yet.
2011-11-21 23:50:58 +00:00
Maik Fischer
65471a6b18
testcases: only export eq_deeply, cmp_deeply from Test::Deep
2011-11-21 23:50:55 +00:00
Maik Fischer
ea2aba4319
testcases: undo 0f386a96
t/144-regress-floating-resize.t
...
wait_for_map can't be used, since we don't set structure_notify
on the urxvts windows
2011-11-21 23:50:52 +00:00
Maik Fischer
db6de84d0b
testcases: use global $x in wait_for_event, drop $x parameter
2011-11-21 23:50:48 +00:00
Maik Fischer
30ea33decb
testcases: let i3test.pm export $x, adapt testcases
2011-11-21 23:50:43 +00:00
Maik Fischer
1b1d7941ec
testcases: correctly enable lexical pragmata
...
eval 'package foo; use strict;' enables strict within eval, it does
not leak into the surrounding scope.
Also fix various warnings/compile errors found due to now enabled
strict and warnings.
2011-11-21 23:50:39 +00:00
Maik Fischer
0a65b770e8
i3test.pm: bail_out if injection of exported modules fails
2011-11-21 23:50:36 +00:00
Maik Fischer
e72899efb6
testcases: move i3test::X11 from 170-force_focus_wrapping.t into i3test.pm
2011-11-21 23:50:33 +00:00
Maik Fischer
0f386a96e7
testcases: fix race conditions in various tests
2011-11-21 19:21:14 +00:00
Maik Fischer
af793c9030
complete-run: wait for all jobs to be finished
2011-11-21 19:20:52 +00:00
Maik Fischer
4f2b1c3a66
testsuite: Makefile.PL: do not rename Makefile while running make clean
2011-11-21 19:14:46 +00:00