diff --git a/Lib/test/test_audioop.py b/Lib/test/test_audioop.py index 926a3cda848..194d78391d0 100644 --- a/Lib/test/test_audioop.py +++ b/Lib/test/test_audioop.py @@ -3,23 +3,23 @@ import audioop from test.test_support import verbose def gendata1(): - return '\0\1\2' + return b'\0\1\2' def gendata2(): if verbose: print('getsample') - if audioop.getsample('\0\1', 2, 0) == 1: - return '\0\0\0\1\0\2' + if audioop.getsample(b'\0\1', 2, 0) == 1: + return b'\0\0\0\1\0\2' else: - return '\0\0\1\0\2\0' + return b'\0\0\1\0\2\0' def gendata4(): if verbose: print('getsample') - if audioop.getsample('\0\0\0\1', 4, 0) == 1: - return '\0\0\0\0\0\0\0\1\0\0\0\2' + if audioop.getsample(b'\0\0\0\1', 4, 0) == 1: + return b'\0\0\0\0\0\0\0\1\0\0\0\2' else: - return '\0\0\0\0\1\0\0\0\2\0\0\0' + return b'\0\0\0\0\1\0\0\0\2\0\0\0' def testmax(data): if verbose: @@ -87,9 +87,9 @@ def testadd(data): print('add') data2 = [] for d in data: - str = '' - for s in d: - str = str + chr(ord(s)*2) + str = bytes(len(d)) + for i,b in enumerate(d): + str[i] = 2*b data2.append(str) if audioop.add(data[0], data[0], 1) != data2[0] or \ audioop.add(data[1], data[1], 2) != data2[1] or \ @@ -124,7 +124,7 @@ def testlin2lin(data): def testadpcm2lin(data): # Very cursory test - if audioop.adpcm2lin('\0\0', 1, None) != ('\0\0\0\0', (0,0)): + if audioop.adpcm2lin(b'\0\0', 1, None) != (b'\0\0\0\0', (0,0)): return 0 return 1 @@ -132,16 +132,16 @@ def testlin2adpcm(data): if verbose: print('lin2adpcm') # Very cursory test - if audioop.lin2adpcm('\0\0\0\0', 1, None) != ('\0\0', (0,0)): + if audioop.lin2adpcm(b'\0\0\0\0', 1, None) != (b'\0\0', (0,0)): return 0 return 1 def testlin2alaw(data): if verbose: print('lin2alaw') - if audioop.lin2alaw(data[0], 1) != '\xd5\xc5\xf5' or \ - audioop.lin2alaw(data[1], 2) != '\xd5\xd5\xd5' or \ - audioop.lin2alaw(data[2], 4) != '\xd5\xd5\xd5': + if audioop.lin2alaw(data[0], 1) != b'\xd5\xc5\xf5' or \ + audioop.lin2alaw(data[1], 2) != b'\xd5\xd5\xd5' or \ + audioop.lin2alaw(data[2], 4) != b'\xd5\xd5\xd5': return 0 return 1 @@ -157,9 +157,9 @@ def testalaw2lin(data): def testlin2ulaw(data): if verbose: print('lin2ulaw') - if audioop.lin2ulaw(data[0], 1) != '\xff\xe7\xdb' or \ - audioop.lin2ulaw(data[1], 2) != '\xff\xff\xff' or \ - audioop.lin2ulaw(data[2], 4) != '\xff\xff\xff': + if audioop.lin2ulaw(data[0], 1) != b'\xff\xe7\xdb' or \ + audioop.lin2ulaw(data[1], 2) != b'\xff\xff\xff' or \ + audioop.lin2ulaw(data[2], 4) != b'\xff\xff\xff': return 0 return 1 @@ -177,9 +177,9 @@ def testmul(data): print('mul') data2 = [] for d in data: - str = '' - for s in d: - str = str + chr(ord(s)*2) + str = bytes(len(d)) + for i,b in enumerate(d): + str[i] = 2*b data2.append(str) if audioop.mul(data[0], 1, 2) != data2[0] or \ audioop.mul(data[1],2, 2) != data2[1] or \ @@ -193,23 +193,24 @@ def testratecv(data): state = None d1, state = audioop.ratecv(data[0], 1, 1, 8000, 16000, state) d2, state = audioop.ratecv(data[0], 1, 1, 8000, 16000, state) - if d1 + d2 != '\000\000\001\001\002\001\000\000\001\001\002': + if d1 + d2 != b'\000\000\001\001\002\001\000\000\001\001\002': return 0 return 1 def testreverse(data): if verbose: print('reverse') - if audioop.reverse(data[0], 1) != '\2\1\0': + if audioop.reverse(data[0], 1) != b'\2\1\0': return 0 return 1 def testtomono(data): if verbose: print('tomono') - data2 = '' + data2 = b'' for d in data[0]: - data2 = data2 + d + d + data2.append(d) + data2.append(d) if audioop.tomono(data2, 1, 0.5, 0.5) != data[0]: return 0 return 1 @@ -217,9 +218,10 @@ def testtomono(data): def testtostereo(data): if verbose: print('tostereo') - data2 = '' + data2 = b'' for d in data[0]: - data2 = data2 + d + d + data2.append(d) + data2.append(d) if audioop.tostereo(data[0], 1, 1, 1) != data2: return 0 return 1 @@ -263,8 +265,8 @@ def testone(name, data): return try: rv = func(data) - except 'xx': - print('Test FAILED for audioop.'+name+'() (with an exception)') + except Exception as e: + print('Test FAILED for audioop.'+name+'() (with %s)' % repr(e)) return if not rv: print('Test FAILED for audioop.'+name+'()') diff --git a/Modules/audioop.c b/Modules/audioop.c index ce009758dee..bdee4687ed8 100644 --- a/Modules/audioop.c +++ b/Modules/audioop.c @@ -759,10 +759,10 @@ audioop_mul(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len); + rv = PyBytes_FromStringAndSize(NULL, len); if ( rv == 0 ) return 0; - ncp = (signed char *)PyString_AsString(rv); + ncp = (signed char *)PyBytes_AsString(rv); for ( i=0; i < len; i += size ) { @@ -801,10 +801,10 @@ audioop_tomono(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len/2); + rv = PyBytes_FromStringAndSize(NULL, len/2); if ( rv == 0 ) return 0; - ncp = (signed char *)PyString_AsString(rv); + ncp = (signed char *)PyBytes_AsString(rv); for ( i=0; i < len; i += size*2 ) { @@ -846,10 +846,10 @@ audioop_tostereo(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len*2); + rv = PyBytes_FromStringAndSize(NULL, len*2); if ( rv == 0 ) return 0; - ncp = (signed char *)PyString_AsString(rv); + ncp = (signed char *)PyBytes_AsString(rv); for ( i=0; i < len; i += size ) { @@ -903,10 +903,10 @@ audioop_add(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len1); + rv = PyBytes_FromStringAndSize(NULL, len1); if ( rv == 0 ) return 0; - ncp = (signed char *)PyString_AsString(rv); + ncp = (signed char *)PyBytes_AsString(rv); for ( i=0; i < len1; i += size ) { if ( size == 1 ) val1 = (int)*CHARP(cp1, i); @@ -949,10 +949,10 @@ audioop_bias(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len); + rv = PyBytes_FromStringAndSize(NULL, len); if ( rv == 0 ) return 0; - ncp = (signed char *)PyString_AsString(rv); + ncp = (signed char *)PyBytes_AsString(rv); for ( i=0; i < len; i += size ) { @@ -985,10 +985,10 @@ audioop_reverse(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len); + rv = PyBytes_FromStringAndSize(NULL, len); if ( rv == 0 ) return 0; - ncp = (unsigned char *)PyString_AsString(rv); + ncp = (unsigned char *)PyBytes_AsString(rv); for ( i=0; i < len; i += size ) { if ( size == 1 ) val = ((int)*CHARP(cp, i)) << 8; @@ -1023,10 +1023,10 @@ audioop_lin2lin(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, (len/size)*size2); + rv = PyBytes_FromStringAndSize(NULL, (len/size)*size2); if ( rv == 0 ) return 0; - ncp = (unsigned char *)PyString_AsString(rv); + ncp = (unsigned char *)PyBytes_AsString(rv); for ( i=0, j=0; i < len; i += size, j += size2 ) { if ( size == 1 ) val = ((int)*CHARP(cp, i)) << 8; @@ -1157,7 +1157,7 @@ audioop_ratecv(PyObject *self, PyObject *args) nbytes / bytes_per_frame != ceiling) str = NULL; else - str = PyString_FromStringAndSize(NULL, nbytes); + str = PyBytes_FromStringAndSize(NULL, nbytes); if (str == NULL) { PyErr_SetString(PyExc_MemoryError, @@ -1165,7 +1165,7 @@ audioop_ratecv(PyObject *self, PyObject *args) goto exit; } } - ncp = PyString_AsString(str); + ncp = PyBytes_AsString(str); for (;;) { while (d < 0) { @@ -1182,13 +1182,12 @@ audioop_ratecv(PyObject *self, PyObject *args) goto exit; /* We have checked before that the length * of the string fits into int. */ - len = (int)(ncp - PyString_AsString(str)); - if (len == 0) { - /*don't want to resize to zero length*/ - rv = PyString_FromStringAndSize("", 0); - Py_DECREF(str); - str = rv; - } else if (_PyString_Resize(&str, len) < 0) + len = (int)(ncp - PyBytes_AsString(str)); + rv = PyBytes_FromStringAndSize + (PyBytes_AsString(str), len); + Py_DECREF(str); + str = rv; + if (str == NULL) goto exit; rv = Py_BuildValue("(O(iO))", str, d, samps); Py_DECREF(samps); @@ -1255,10 +1254,10 @@ audioop_lin2ulaw(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len/size); + rv = PyBytes_FromStringAndSize(NULL, len/size); if ( rv == 0 ) return 0; - ncp = (unsigned char *)PyString_AsString(rv); + ncp = (unsigned char *)PyBytes_AsString(rv); for ( i=0; i < len; i += size ) { if ( size == 1 ) val = ((int)*CHARP(cp, i)) << 8; @@ -1289,10 +1288,10 @@ audioop_ulaw2lin(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len*size); + rv = PyBytes_FromStringAndSize(NULL, len*size); if ( rv == 0 ) return 0; - ncp = (signed char *)PyString_AsString(rv); + ncp = (signed char *)PyBytes_AsString(rv); for ( i=0; i < len*size; i += size ) { cval = *cp++; @@ -1323,10 +1322,10 @@ audioop_lin2alaw(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len/size); + rv = PyBytes_FromStringAndSize(NULL, len/size); if ( rv == 0 ) return 0; - ncp = (unsigned char *)PyString_AsString(rv); + ncp = (unsigned char *)PyBytes_AsString(rv); for ( i=0; i < len; i += size ) { if ( size == 1 ) val = ((int)*CHARP(cp, i)) << 8; @@ -1357,10 +1356,10 @@ audioop_alaw2lin(PyObject *self, PyObject *args) return 0; } - rv = PyString_FromStringAndSize(NULL, len*size); + rv = PyBytes_FromStringAndSize(NULL, len*size); if ( rv == 0 ) return 0; - ncp = (signed char *)PyString_AsString(rv); + ncp = (signed char *)PyBytes_AsString(rv); for ( i=0; i < len*size; i += size ) { cval = *cp++; @@ -1393,10 +1392,10 @@ audioop_lin2adpcm(PyObject *self, PyObject *args) return 0; } - str = PyString_FromStringAndSize(NULL, len/(size*2)); + str = PyBytes_FromStringAndSize(NULL, len/(size*2)); if ( str == 0 ) return 0; - ncp = (signed char *)PyString_AsString(str); + ncp = (signed char *)PyBytes_AsString(str); /* Decode state, should have (value, step) */ if ( state == Py_None ) { @@ -1509,10 +1508,10 @@ audioop_adpcm2lin(PyObject *self, PyObject *args) } else if ( !PyArg_ParseTuple(state, "ii", &valpred, &index) ) return 0; - str = PyString_FromStringAndSize(NULL, len*size*2); + str = PyBytes_FromStringAndSize(NULL, len*size*2); if ( str == 0 ) return 0; - ncp = (signed char *)PyString_AsString(str); + ncp = (signed char *)PyBytes_AsString(str); step = stepsizeTable[index]; bufferstep = 0;