You should be able to drop this into your Cucumber 'hooks' directory, and the magic video-record-on-failure will kick in.
On Mac, this needs https://gist.github.com/sleekweasel/1aee7b339f3f6319dda0 too.
perl -ple 'while (/>(<.*?>)/) { | |
s{>(<.*?>)([^<]*)}{ | |
$i++; | |
$i-=1 if substr($1,0,2) eq "</"; | |
$s=">\n".(" "x$i).$1.$2; | |
$i-=1 if substr($1,0,2) eq "</" or $2 ne ""; | |
$i-=2 if substr($1,0,2) eq "</" and $2 ne ""; | |
$i-=1 if substr($1,-2) eq "/>"; | |
$s | |
}e |
#!/bin/bash | |
uidump=/tmp/${0##*/}.$$ | |
unsyncd_uidump_matching_lines() { | |
adb shell 'rm -f /sdcard/dump.* && uiautomator dump /sdcard/dump.xml 2>/sdcard/dump.err && cat /sdcard/dump.xml' | | |
tr '<' "\n" | | |
tee $uidump.full | | |
grep -Ei "$1" | | |
xargs -rn1 | |
diff --git a/adb/adb.cpp b/adb/adb.cpp | |
index 6b30be884..e05b707ed 100644 | |
--- a/adb/adb.cpp | |
+++ b/adb/adb.cpp | |
@@ -664,7 +664,13 @@ static void ReportServerStartupFailure(pid_t pid) { | |
while (static_cast<size_t>(i) < lines.size()) fprintf(stderr, "%s\n", lines[i++].c_str()); | |
} | |
+const char* env_adb_server_autostart = "ADB_SERVER_AUTOSTART"; | |
int launch_server(const std::string& socket_spec) { |
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME | |
[09:18:58]node 6635 root cwd DIR 254,1 12288 14943924 /local/buildAgent/work/dcce385aab59e3da/bma-calabash | |
[09:18:58]node 6635 root rtd DIR 0,188 4096 75761720 / | |
[09:18:58]node 6635 root txt REG 0,188 29055080 36438248 /usr/bin/node | |
[09:18:58]node 6635 root mem REG 254,1 36438248 /usr/bin/node (path dev=0,188) | |
[09:18:58]node 6635 root mem REG 254,1 36176220 /lib/x86_64-linux-gnu/libc-2.24.so (path dev=0,188) | |
[09:18:58]node 6635 root mem REG 254,1 36176248 /lib/x86_64-linux-gnu/libpthread-2.24.so (path dev=0,188) | |
[09:18:58]node 6635 root mem REG 254,1 3409779 /lib/x86_64-linux-gnu/libgcc_s.so.1 (path dev=0,188) | |
[09:18:58]node 6635 root mem REG 254,1 36176228 /lib/x86_64-linux-gnu/libm-2.24.so (path dev=0,188) | |
[09:18:58]node 6635 root mem REG |
#!/bin/bash | |
# | |
# Implementation of https://en.wikipedia.org/wiki/Longest_common_subsequence_problem in old-ish BASH | |
# because my Android emulator doesn't have diff on it. | |
# Seriously bogs down on files >100 lines | |
# Could implement the common head and tail trimming efficiency. | |
XL=() | |
XC=() | |
while IFS= read -r line || [[ "$line" ]] ; do XL+=("$line") ; XC+=($(echo "$line" | cksum | tr ' ' -)) ; done < ${1?First filename required} |
#!/bin/bash | |
usbreset_serials() { | |
echo Resetting.. May cause devices to move - files to ioctl/vanish. | |
xargs -t | | |
sed 's/\/serial/\/uevent/g' | | |
xargs -tr grep -h DEVNAME= | | |
sed 's/DEVNAME=/\/dev\//' | | |
xargs -trn1 sudo $(dirname $0)/usbreset | |
} |
You should be able to drop this into your Cucumber 'hooks' directory, and the magic video-record-on-failure will kick in.
On Mac, this needs https://gist.github.com/sleekweasel/1aee7b339f3f6319dda0 too.
# Indices for int[4] rectangles. | |
X0 ||= 0 | |
Y0 ||= 1 | |
X1 ||= 2 | |
Y1 ||= 3 | |
# Calculate clipped and obscured areas based on lists of orthogonal rectangles. | |
class Bounds | |
def initialize(r) |
tile_emulators() { | |
DGEO=$(xdotool getdisplaygeometry) | |
index=0 | |
for p in $( xdotool search 'enymotion' getwindowpid %@|sort |uniq ) ; do | |
GEOM=$(perl -le " | |
%A=(tot=>$EMULATORS, ix=>$index, dx=>${DGEO% *}, dy=>${DGEO#* });"' | |
$sq = int(sqrt($A{tot})); $sq++ if sqrt($A{tot}) > $sq; | |
$sx=$A{dx}/$sq; $sy=$A{dy}/$sq; | |
print "windowsize $sx $sy windowmove ",($A{ix} % $sq) * $sx," ",int($A{ix} / $sq) * $sy' | |
); |
diff --git a/adb/client/usb_linux.cpp b/adb/client/usb_linux.cpp | |
index f9ba7cbc2..f805ab9b4 100644 | |
--- a/adb/client/usb_linux.cpp | |
+++ b/adb/client/usb_linux.cpp | |
@@ -120,6 +120,71 @@ static inline bool contains_non_digit(const char* name) { | |
return false; | |
} | |
+static int iterate_numbers(const char* list, int* rejects) { | |
+ const char* p = list; |