Mercurial > prosody-hg
comparison spec/util_format_spec.lua @ 13930:1914675b6727
util.format: Handle Lua 5.5 change in precision tostring(big number)
sed -i '/73786976294838206464/s/equal("\[7\.3786976294838e+19]"/matches("%[7%.3786976294838%d*e%+19%]"/'
sed -i '/73786976294838206464/s/equal("7\.3786976294838e+19"/matches("7%.3786976294838%d*e%+19"/'
Don't think this change in Lua affects anything else, we shouldn't be
depending on the exact number format tostring() uses.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 08 Aug 2025 15:04:48 +0200 |
| parents | c0e3e0d79574 |
| children |
comparison
equal
deleted
inserted
replaced
| 13929:203a0b5ade55 | 13930:1914675b6727 |
|---|---|
| 13 assert.equal("true", format("%s", true)); | 13 assert.equal("true", format("%s", true)); |
| 14 assert.equal("[true]", format("%d", true)); | 14 assert.equal("[true]", format("%d", true)); |
| 15 assert.equal("% [true]", format("%%", true)); | 15 assert.equal("% [true]", format("%%", true)); |
| 16 assert.equal("{}", format("%q", {})); | 16 assert.equal("{}", format("%q", {})); |
| 17 assert.equal("[1.5]", format("%d", 1.5)); | 17 assert.equal("[1.5]", format("%d", 1.5)); |
| 18 assert.equal("[7.3786976294838e+19]", format("%d", 73786976294838206464)); | 18 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%d", 73786976294838206464)); |
| 19 end); | 19 end); |
| 20 | 20 |
| 21 it("escapes ascii control stuff", function () | 21 it("escapes ascii control stuff", function () |
| 22 assert.equal("␁", format("%s", "\1")); | 22 assert.equal("␁", format("%s", "\1")); |
| 23 assert.equal("[␁]", format("%d", "\1")); | 23 assert.equal("[␁]", format("%d", "\1")); |
| 260 describe("number", function () | 260 describe("number", function () |
| 261 describe("to %c", function () | 261 describe("to %c", function () |
| 262 it("works", function () | 262 it("works", function () |
| 263 assert.equal("a", format("%c", 97)) | 263 assert.equal("a", format("%c", 97)) |
| 264 assert.equal("[1.5]", format("%c", 1.5)) | 264 assert.equal("[1.5]", format("%c", 1.5)) |
| 265 assert.equal("[7.3786976294838e+19]", format("%c", 73786976294838206464)) | 265 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%c", 73786976294838206464)) |
| 266 assert.equal("[inf]", format("%c", math.huge)) | 266 assert.equal("[inf]", format("%c", math.huge)) |
| 267 end); | 267 end); |
| 268 end); | 268 end); |
| 269 | 269 |
| 270 describe("to %d", function () | 270 describe("to %d", function () |
| 271 it("works", function () | 271 it("works", function () |
| 272 assert.equal("97", format("%d", 97)) | 272 assert.equal("97", format("%d", 97)) |
| 273 assert.equal("-12345", format("%d", -12345)) | 273 assert.equal("-12345", format("%d", -12345)) |
| 274 assert.equal("[1.5]", format("%d", 1.5)) | 274 assert.equal("[1.5]", format("%d", 1.5)) |
| 275 assert.equal("[7.3786976294838e+19]", format("%d", 73786976294838206464)) | 275 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%d", 73786976294838206464)) |
| 276 assert.equal("[inf]", format("%d", math.huge)) | 276 assert.equal("[inf]", format("%d", math.huge)) |
| 277 assert.equal("2147483647", format("%d", 2147483647)) | 277 assert.equal("2147483647", format("%d", 2147483647)) |
| 278 end); | 278 end); |
| 279 end); | 279 end); |
| 280 | 280 |
| 281 describe("to %i", function () | 281 describe("to %i", function () |
| 282 it("works", function () | 282 it("works", function () |
| 283 assert.equal("97", format("%i", 97)) | 283 assert.equal("97", format("%i", 97)) |
| 284 assert.equal("-12345", format("%i", -12345)) | 284 assert.equal("-12345", format("%i", -12345)) |
| 285 assert.equal("[1.5]", format("%i", 1.5)) | 285 assert.equal("[1.5]", format("%i", 1.5)) |
| 286 assert.equal("[7.3786976294838e+19]", format("%i", 73786976294838206464)) | 286 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%i", 73786976294838206464)) |
| 287 assert.equal("[inf]", format("%i", math.huge)) | 287 assert.equal("[inf]", format("%i", math.huge)) |
| 288 assert.equal("2147483647", format("%i", 2147483647)) | 288 assert.equal("2147483647", format("%i", 2147483647)) |
| 289 end); | 289 end); |
| 290 end); | 290 end); |
| 291 | 291 |
| 292 describe("to %o", function () | 292 describe("to %o", function () |
| 293 it("works", function () | 293 it("works", function () |
| 294 assert.equal("141", format("%o", 97)) | 294 assert.equal("141", format("%o", 97)) |
| 295 assert.equal("[-12345]", format("%o", -12345)) | 295 assert.equal("[-12345]", format("%o", -12345)) |
| 296 assert.equal("[1.5]", format("%o", 1.5)) | 296 assert.equal("[1.5]", format("%o", 1.5)) |
| 297 assert.equal("[7.3786976294838e+19]", format("%o", 73786976294838206464)) | 297 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%o", 73786976294838206464)) |
| 298 assert.equal("[inf]", format("%o", math.huge)) | 298 assert.equal("[inf]", format("%o", math.huge)) |
| 299 assert.equal("17777777777", format("%o", 2147483647)) | 299 assert.equal("17777777777", format("%o", 2147483647)) |
| 300 end); | 300 end); |
| 301 end); | 301 end); |
| 302 | 302 |
| 303 describe("to %u", function () | 303 describe("to %u", function () |
| 304 it("works", function () | 304 it("works", function () |
| 305 assert.equal("97", format("%u", 97)) | 305 assert.equal("97", format("%u", 97)) |
| 306 assert.equal("[-12345]", format("%u", -12345)) | 306 assert.equal("[-12345]", format("%u", -12345)) |
| 307 assert.equal("[1.5]", format("%u", 1.5)) | 307 assert.equal("[1.5]", format("%u", 1.5)) |
| 308 assert.equal("[7.3786976294838e+19]", format("%u", 73786976294838206464)) | 308 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%u", 73786976294838206464)) |
| 309 assert.equal("[inf]", format("%u", math.huge)) | 309 assert.equal("[inf]", format("%u", math.huge)) |
| 310 assert.equal("2147483647", format("%u", 2147483647)) | 310 assert.equal("2147483647", format("%u", 2147483647)) |
| 311 end); | 311 end); |
| 312 end); | 312 end); |
| 313 | 313 |
| 314 describe("to %x", function () | 314 describe("to %x", function () |
| 315 it("works", function () | 315 it("works", function () |
| 316 assert.equal("61", format("%x", 97)) | 316 assert.equal("61", format("%x", 97)) |
| 317 assert.equal("[-12345]", format("%x", -12345)) | 317 assert.equal("[-12345]", format("%x", -12345)) |
| 318 assert.equal("[1.5]", format("%x", 1.5)) | 318 assert.equal("[1.5]", format("%x", 1.5)) |
| 319 assert.equal("[7.3786976294838e+19]", format("%x", 73786976294838206464)) | 319 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%x", 73786976294838206464)) |
| 320 assert.equal("[inf]", format("%x", math.huge)) | 320 assert.equal("[inf]", format("%x", math.huge)) |
| 321 assert.equal("7fffffff", format("%x", 2147483647)) | 321 assert.equal("7fffffff", format("%x", 2147483647)) |
| 322 end); | 322 end); |
| 323 end); | 323 end); |
| 324 | 324 |
| 325 describe("to %X", function () | 325 describe("to %X", function () |
| 326 it("works", function () | 326 it("works", function () |
| 327 assert.equal("61", format("%X", 97)) | 327 assert.equal("61", format("%X", 97)) |
| 328 assert.equal("[-12345]", format("%X", -12345)) | 328 assert.equal("[-12345]", format("%X", -12345)) |
| 329 assert.equal("[1.5]", format("%X", 1.5)) | 329 assert.equal("[1.5]", format("%X", 1.5)) |
| 330 assert.equal("[7.3786976294838e+19]", format("%X", 73786976294838206464)) | 330 assert.matches("%[7%.3786976294838%d*e%+19%]", format("%X", 73786976294838206464)) |
| 331 assert.equal("[inf]", format("%X", math.huge)) | 331 assert.equal("[inf]", format("%X", math.huge)) |
| 332 assert.equal("7FFFFFFF", format("%X", 2147483647)) | 332 assert.equal("7FFFFFFF", format("%X", 2147483647)) |
| 333 end); | 333 end); |
| 334 end); | 334 end); |
| 335 | 335 |
| 424 describe("to %s", function () | 424 describe("to %s", function () |
| 425 it("works", function () | 425 it("works", function () |
| 426 assert.equal("97", format("%s", 97)) | 426 assert.equal("97", format("%s", 97)) |
| 427 assert.equal("-12345", format("%s", -12345)) | 427 assert.equal("-12345", format("%s", -12345)) |
| 428 assert.equal("1.5", format("%s", 1.5)) | 428 assert.equal("1.5", format("%s", 1.5)) |
| 429 assert.equal("7.3786976294838e+19", format("%s", 73786976294838206464)) | 429 assert.matches("7%.3786976294838%d*e%+19", format("%s", 73786976294838206464)) |
| 430 assert.equal("inf", format("%s", math.huge)) | 430 assert.equal("inf", format("%s", math.huge)) |
| 431 assert.equal("2147483647", format("%s", 2147483647)) | 431 assert.equal("2147483647", format("%s", 2147483647)) |
| 432 end); | 432 end); |
| 433 end); | 433 end); |
| 434 | 434 |
