tests/hgterm.ti
author Adam Simpkins <simpkins@fb.com>
Tue, 26 Apr 2016 15:32:59 -0700
branchstable
changeset 29017 07be86828e79
parent 14757 f0b047a24c57
permissions -rw-r--r--
util: fix race in makedirs() Update makedirs() to ignore EEXIST in case someone else has already created the directory in question. Previously the ensuredirs() function existed, and was nearly identical to makedirs() except that it fixed this race. Unfortunately ensuredirs() was only used in 3 places, and most code uses the racy makedirs() function. This fixes makedirs() to be non-racy, and replaces calls to ensuredirs() with makedirs(). In particular, mercurial.scmutil.origpath() used the racy makedirs() code, which could cause failures during "hg update" as it tried to create backup directories. This does slightly change the behavior of call sites using ensuredirs(): previously ensuredirs() would throw EEXIST if the path existed but was a regular file instead of a directory. It did this by explicitly checking os.path.isdir() after getting EEXIST. The makedirs() code did not do this and swallowed all EEXIST errors. I kept the makedirs() behavior, since it seemed preferable to avoid the extra stat call in the common case where this directory already exists. If the path does happen to be a file, the caller will almost certainly fail with an ENOTDIR error shortly afterwards anyway. I checked the 3 existing call sites of ensuredirs(), and this seems to be the case for them.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14757
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     1
hgterm,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     2
	am, km, mir, msgr, xenl,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     3
	colors#8, cols#80, it#8, lines#24, pairs#64,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     4
	acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     5
	bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     6
	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     7
	cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     8
	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
     9
	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    10
	ed=\E[J, el=\E[K, enacs=\E)0, home=\E[H, ht=\t,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    11
	hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\n,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    12
	is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, kbs=\b,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    13
	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    14
	kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    15
	kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    16
	kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    17
	kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    18
	kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    19
	kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, kmous=\E[M,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    20
	knp=\E[6~, kpp=\E[5~, kslt=\E[4~, op=\E[m, rc=\E8,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    21
	rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    22
	rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    23
	rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8, sc=\E7,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    24
	setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    25
	smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    26
	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
f0b047a24c57 tests: hardcode terminfo entry for the terminfo color test
Danek Duvall <duvall@comfychair.org>
parents:
diff changeset
    27
	u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,