mirror of
https://github.com/ddworken/hishtory.git
synced 2025-06-21 04:17:45 +02:00
Add additional tests for history importing
This commit is contained in:
parent
d33bd6a046
commit
c7d1abdc83
@ -1264,8 +1264,6 @@ func testHishtoryOffline(t *testing.T, tester shellTester) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: tests for hishtory import
|
|
||||||
|
|
||||||
func testInitialHistoryImport(t *testing.T, tester shellTester) {
|
func testInitialHistoryImport(t *testing.T, tester shellTester) {
|
||||||
// Setup
|
// Setup
|
||||||
defer testutils.BackupAndRestore(t)()
|
defer testutils.BackupAndRestore(t)()
|
||||||
@ -2453,6 +2451,48 @@ func testMultipleUsers(t *testing.T, tester shellTester) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func createSyntheticImportEntries(t testing.TB, numSyntheticEntries int) {
|
||||||
|
homedir, err := os.UserHomeDir()
|
||||||
|
require.NoError(t, err)
|
||||||
|
f, err := os.OpenFile(path.Join(homedir, ".bash_history"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||||
|
require.NoError(t, err)
|
||||||
|
defer f.Close()
|
||||||
|
for i := 1; i <= numSyntheticEntries; i++ {
|
||||||
|
_, err := f.WriteString(fmt.Sprintf("echo command-%d\n", i))
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
require.NoError(t, f.Close())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestImportHistory(t *testing.T) {
|
||||||
|
// Setup
|
||||||
|
tester := bashTester{}
|
||||||
|
defer testutils.BackupAndRestore(t)()
|
||||||
|
userSecret := installHishtory(t, tester, "")
|
||||||
|
numSyntheticEntries := 305
|
||||||
|
createSyntheticImportEntries(t, numSyntheticEntries)
|
||||||
|
|
||||||
|
// Run the import
|
||||||
|
ctx := hctx.MakeContext()
|
||||||
|
numImported, err := lib.ImportHistory(ctx, false, true)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t, numImported, numSyntheticEntries+1)
|
||||||
|
|
||||||
|
// Check that it imported all of them
|
||||||
|
out := tester.RunInteractiveShell(t, ` hishtory export -pipefail`)
|
||||||
|
testutils.CompareGoldens(t, out, "TestImportHistory-export")
|
||||||
|
|
||||||
|
// Check that it was uploaded so that another user can get it
|
||||||
|
testutils.ResetLocalState(t)
|
||||||
|
installHishtory(t, tester, userSecret)
|
||||||
|
out = strings.TrimSpace(tester.RunInteractiveShell(t, ` hishtory export -pipefail | wc -l`))
|
||||||
|
require.Equal(t, "305", out)
|
||||||
|
out = tester.RunInteractiveShell(t, ` hishtory export -pipefail`)
|
||||||
|
require.Contains(t, out, "echo command-305")
|
||||||
|
|
||||||
|
// TODO: There is a bug here that will be evident if you check that the export is in the correct order on the remote device, because timestamps don't have sufficient granularity
|
||||||
|
}
|
||||||
|
|
||||||
func BenchmarkImport(b *testing.B) {
|
func BenchmarkImport(b *testing.B) {
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
// Setup
|
// Setup
|
||||||
@ -2467,16 +2507,7 @@ func BenchmarkImport(b *testing.B) {
|
|||||||
|
|
||||||
// Create a large history in bash that we will pre-import
|
// Create a large history in bash that we will pre-import
|
||||||
numSyntheticEntries := 100_000
|
numSyntheticEntries := 100_000
|
||||||
homedir, err := os.UserHomeDir()
|
createSyntheticImportEntries(b, numSyntheticEntries)
|
||||||
require.NoError(b, err)
|
|
||||||
f, err := os.OpenFile(path.Join(homedir, ".bash_history"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
|
||||||
require.NoError(b, err)
|
|
||||||
defer f.Close()
|
|
||||||
for i := 1; i <= numSyntheticEntries; i++ {
|
|
||||||
_, err := f.WriteString(fmt.Sprintf("echo command-%d\n", i))
|
|
||||||
require.NoError(b, err)
|
|
||||||
}
|
|
||||||
require.NoError(b, f.Close())
|
|
||||||
|
|
||||||
// Benchmarked code:
|
// Benchmarked code:
|
||||||
b.StartTimer()
|
b.StartTimer()
|
||||||
|
305
client/lib/goldens/TestImportHistory-export
Normal file
305
client/lib/goldens/TestImportHistory-export
Normal file
@ -0,0 +1,305 @@
|
|||||||
|
echo command-1
|
||||||
|
echo command-2
|
||||||
|
echo command-3
|
||||||
|
echo command-4
|
||||||
|
echo command-5
|
||||||
|
echo command-6
|
||||||
|
echo command-7
|
||||||
|
echo command-8
|
||||||
|
echo command-9
|
||||||
|
echo command-10
|
||||||
|
echo command-11
|
||||||
|
echo command-12
|
||||||
|
echo command-13
|
||||||
|
echo command-14
|
||||||
|
echo command-15
|
||||||
|
echo command-16
|
||||||
|
echo command-17
|
||||||
|
echo command-18
|
||||||
|
echo command-19
|
||||||
|
echo command-20
|
||||||
|
echo command-21
|
||||||
|
echo command-22
|
||||||
|
echo command-23
|
||||||
|
echo command-24
|
||||||
|
echo command-25
|
||||||
|
echo command-26
|
||||||
|
echo command-27
|
||||||
|
echo command-28
|
||||||
|
echo command-29
|
||||||
|
echo command-30
|
||||||
|
echo command-31
|
||||||
|
echo command-32
|
||||||
|
echo command-33
|
||||||
|
echo command-34
|
||||||
|
echo command-35
|
||||||
|
echo command-36
|
||||||
|
echo command-37
|
||||||
|
echo command-38
|
||||||
|
echo command-39
|
||||||
|
echo command-40
|
||||||
|
echo command-41
|
||||||
|
echo command-42
|
||||||
|
echo command-43
|
||||||
|
echo command-44
|
||||||
|
echo command-45
|
||||||
|
echo command-46
|
||||||
|
echo command-47
|
||||||
|
echo command-48
|
||||||
|
echo command-49
|
||||||
|
echo command-50
|
||||||
|
echo command-51
|
||||||
|
echo command-52
|
||||||
|
echo command-53
|
||||||
|
echo command-54
|
||||||
|
echo command-55
|
||||||
|
echo command-56
|
||||||
|
echo command-57
|
||||||
|
echo command-58
|
||||||
|
echo command-59
|
||||||
|
echo command-60
|
||||||
|
echo command-61
|
||||||
|
echo command-62
|
||||||
|
echo command-63
|
||||||
|
echo command-64
|
||||||
|
echo command-65
|
||||||
|
echo command-66
|
||||||
|
echo command-67
|
||||||
|
echo command-68
|
||||||
|
echo command-69
|
||||||
|
echo command-70
|
||||||
|
echo command-71
|
||||||
|
echo command-72
|
||||||
|
echo command-73
|
||||||
|
echo command-74
|
||||||
|
echo command-75
|
||||||
|
echo command-76
|
||||||
|
echo command-77
|
||||||
|
echo command-78
|
||||||
|
echo command-79
|
||||||
|
echo command-80
|
||||||
|
echo command-81
|
||||||
|
echo command-82
|
||||||
|
echo command-83
|
||||||
|
echo command-84
|
||||||
|
echo command-85
|
||||||
|
echo command-86
|
||||||
|
echo command-87
|
||||||
|
echo command-88
|
||||||
|
echo command-89
|
||||||
|
echo command-90
|
||||||
|
echo command-91
|
||||||
|
echo command-92
|
||||||
|
echo command-93
|
||||||
|
echo command-94
|
||||||
|
echo command-95
|
||||||
|
echo command-96
|
||||||
|
echo command-97
|
||||||
|
echo command-98
|
||||||
|
echo command-99
|
||||||
|
echo command-100
|
||||||
|
echo command-101
|
||||||
|
echo command-102
|
||||||
|
echo command-103
|
||||||
|
echo command-104
|
||||||
|
echo command-105
|
||||||
|
echo command-106
|
||||||
|
echo command-107
|
||||||
|
echo command-108
|
||||||
|
echo command-109
|
||||||
|
echo command-110
|
||||||
|
echo command-111
|
||||||
|
echo command-112
|
||||||
|
echo command-113
|
||||||
|
echo command-114
|
||||||
|
echo command-115
|
||||||
|
echo command-116
|
||||||
|
echo command-117
|
||||||
|
echo command-118
|
||||||
|
echo command-119
|
||||||
|
echo command-120
|
||||||
|
echo command-121
|
||||||
|
echo command-122
|
||||||
|
echo command-123
|
||||||
|
echo command-124
|
||||||
|
echo command-125
|
||||||
|
echo command-126
|
||||||
|
echo command-127
|
||||||
|
echo command-128
|
||||||
|
echo command-129
|
||||||
|
echo command-130
|
||||||
|
echo command-131
|
||||||
|
echo command-132
|
||||||
|
echo command-133
|
||||||
|
echo command-134
|
||||||
|
echo command-135
|
||||||
|
echo command-136
|
||||||
|
echo command-137
|
||||||
|
echo command-138
|
||||||
|
echo command-139
|
||||||
|
echo command-140
|
||||||
|
echo command-141
|
||||||
|
echo command-142
|
||||||
|
echo command-143
|
||||||
|
echo command-144
|
||||||
|
echo command-145
|
||||||
|
echo command-146
|
||||||
|
echo command-147
|
||||||
|
echo command-148
|
||||||
|
echo command-149
|
||||||
|
echo command-150
|
||||||
|
echo command-151
|
||||||
|
echo command-152
|
||||||
|
echo command-153
|
||||||
|
echo command-154
|
||||||
|
echo command-155
|
||||||
|
echo command-156
|
||||||
|
echo command-157
|
||||||
|
echo command-158
|
||||||
|
echo command-159
|
||||||
|
echo command-160
|
||||||
|
echo command-161
|
||||||
|
echo command-162
|
||||||
|
echo command-163
|
||||||
|
echo command-164
|
||||||
|
echo command-165
|
||||||
|
echo command-166
|
||||||
|
echo command-167
|
||||||
|
echo command-168
|
||||||
|
echo command-169
|
||||||
|
echo command-170
|
||||||
|
echo command-171
|
||||||
|
echo command-172
|
||||||
|
echo command-173
|
||||||
|
echo command-174
|
||||||
|
echo command-175
|
||||||
|
echo command-176
|
||||||
|
echo command-177
|
||||||
|
echo command-178
|
||||||
|
echo command-179
|
||||||
|
echo command-180
|
||||||
|
echo command-181
|
||||||
|
echo command-182
|
||||||
|
echo command-183
|
||||||
|
echo command-184
|
||||||
|
echo command-185
|
||||||
|
echo command-186
|
||||||
|
echo command-187
|
||||||
|
echo command-188
|
||||||
|
echo command-189
|
||||||
|
echo command-190
|
||||||
|
echo command-191
|
||||||
|
echo command-192
|
||||||
|
echo command-193
|
||||||
|
echo command-194
|
||||||
|
echo command-195
|
||||||
|
echo command-196
|
||||||
|
echo command-197
|
||||||
|
echo command-198
|
||||||
|
echo command-199
|
||||||
|
echo command-200
|
||||||
|
echo command-201
|
||||||
|
echo command-202
|
||||||
|
echo command-203
|
||||||
|
echo command-204
|
||||||
|
echo command-205
|
||||||
|
echo command-206
|
||||||
|
echo command-207
|
||||||
|
echo command-208
|
||||||
|
echo command-209
|
||||||
|
echo command-210
|
||||||
|
echo command-211
|
||||||
|
echo command-212
|
||||||
|
echo command-213
|
||||||
|
echo command-214
|
||||||
|
echo command-215
|
||||||
|
echo command-216
|
||||||
|
echo command-217
|
||||||
|
echo command-218
|
||||||
|
echo command-219
|
||||||
|
echo command-220
|
||||||
|
echo command-221
|
||||||
|
echo command-222
|
||||||
|
echo command-223
|
||||||
|
echo command-224
|
||||||
|
echo command-225
|
||||||
|
echo command-226
|
||||||
|
echo command-227
|
||||||
|
echo command-228
|
||||||
|
echo command-229
|
||||||
|
echo command-230
|
||||||
|
echo command-231
|
||||||
|
echo command-232
|
||||||
|
echo command-233
|
||||||
|
echo command-234
|
||||||
|
echo command-235
|
||||||
|
echo command-236
|
||||||
|
echo command-237
|
||||||
|
echo command-238
|
||||||
|
echo command-239
|
||||||
|
echo command-240
|
||||||
|
echo command-241
|
||||||
|
echo command-242
|
||||||
|
echo command-243
|
||||||
|
echo command-244
|
||||||
|
echo command-245
|
||||||
|
echo command-246
|
||||||
|
echo command-247
|
||||||
|
echo command-248
|
||||||
|
echo command-249
|
||||||
|
echo command-250
|
||||||
|
echo command-251
|
||||||
|
echo command-252
|
||||||
|
echo command-253
|
||||||
|
echo command-254
|
||||||
|
echo command-255
|
||||||
|
echo command-256
|
||||||
|
echo command-257
|
||||||
|
echo command-258
|
||||||
|
echo command-259
|
||||||
|
echo command-260
|
||||||
|
echo command-261
|
||||||
|
echo command-262
|
||||||
|
echo command-263
|
||||||
|
echo command-264
|
||||||
|
echo command-265
|
||||||
|
echo command-266
|
||||||
|
echo command-267
|
||||||
|
echo command-268
|
||||||
|
echo command-269
|
||||||
|
echo command-270
|
||||||
|
echo command-271
|
||||||
|
echo command-272
|
||||||
|
echo command-273
|
||||||
|
echo command-274
|
||||||
|
echo command-275
|
||||||
|
echo command-276
|
||||||
|
echo command-277
|
||||||
|
echo command-278
|
||||||
|
echo command-279
|
||||||
|
echo command-280
|
||||||
|
echo command-281
|
||||||
|
echo command-282
|
||||||
|
echo command-283
|
||||||
|
echo command-284
|
||||||
|
echo command-285
|
||||||
|
echo command-286
|
||||||
|
echo command-287
|
||||||
|
echo command-288
|
||||||
|
echo command-289
|
||||||
|
echo command-290
|
||||||
|
echo command-291
|
||||||
|
echo command-292
|
||||||
|
echo command-293
|
||||||
|
echo command-294
|
||||||
|
echo command-295
|
||||||
|
echo command-296
|
||||||
|
echo command-297
|
||||||
|
echo command-298
|
||||||
|
echo command-299
|
||||||
|
echo command-300
|
||||||
|
echo command-301
|
||||||
|
echo command-302
|
||||||
|
echo command-303
|
||||||
|
echo command-304
|
||||||
|
echo command-305
|
Loading…
x
Reference in New Issue
Block a user