@@ -21,6 +21,7 @@ import (
21
21
"github.com/mongodb/mongo-go-driver/bson/bsontype"
22
22
"github.com/mongodb/mongo-go-driver/bson/primitive"
23
23
"github.com/mongodb/mongo-go-driver/x/bsonx/bsoncore"
24
+ "math"
24
25
)
25
26
26
27
func TestDefaultValueEncoders (t * testing.T ) {
@@ -97,20 +98,28 @@ func TestDefaultValueEncoders(t *testing.T) {
97
98
{"int16/fast path" , int16 (32767 ), nil , nil , bsonrwtest .WriteInt32 , nil },
98
99
{"int32/fast path" , int32 (2147483647 ), nil , nil , bsonrwtest .WriteInt32 , nil },
99
100
{"int64/fast path" , int64 (1234567890987 ), nil , nil , bsonrwtest .WriteInt64 , nil },
100
- {"int/fast path" , int (1234567 ), nil , nil , bsonrwtest .WriteInt64 , nil },
101
- {"int64/fast path - minsize" , int64 (2147483647 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt32 , nil },
102
- {"int/fast path - minsize" , int (2147483647 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt32 , nil },
103
- {"int64/fast path - minsize too large" , int64 (2147483648 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
104
- {"int/fast path - minsize too large" , int (2147483648 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
101
+ {"int64/fast path - minsize" , int64 (math .MaxInt32 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt32 , nil },
102
+ {"int64/fast path - minsize too large" , int64 (math .MaxInt32 + 1 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
103
+ {"int64/fast path - minsize too small" , int64 (math .MinInt32 - 1 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
104
+ {"int/fast path - positive int32" , int (math .MaxInt32 - 1 ), nil , nil , bsonrwtest .WriteInt32 , nil },
105
+ {"int/fast path - negative int32" , int (math .MinInt32 + 1 ), nil , nil , bsonrwtest .WriteInt32 , nil },
106
+ {"int/fast path - MaxInt32" , int (math .MaxInt32 ), nil , nil , bsonrwtest .WriteInt32 , nil },
107
+ {"int/fast path - MinInt32" , int (math .MinInt32 ), nil , nil , bsonrwtest .WriteInt32 , nil },
108
+ {"int/fast path - larger than MaxInt32" , int (math .MaxInt32 + 1 ), nil , nil , bsonrwtest .WriteInt64 , nil },
109
+ {"int/fast path - smaller than MinInt32" , int (math .MinInt32 - 1 ), nil , nil , bsonrwtest .WriteInt64 , nil },
105
110
{"int8/reflection path" , myint8 (127 ), nil , nil , bsonrwtest .WriteInt32 , nil },
106
111
{"int16/reflection path" , myint16 (32767 ), nil , nil , bsonrwtest .WriteInt32 , nil },
107
112
{"int32/reflection path" , myint32 (2147483647 ), nil , nil , bsonrwtest .WriteInt32 , nil },
108
113
{"int64/reflection path" , myint64 (1234567890987 ), nil , nil , bsonrwtest .WriteInt64 , nil },
109
- {"int/reflection path" , myint (1234567890987 ), nil , nil , bsonrwtest .WriteInt64 , nil },
110
- {"int64/reflection path - minsize" , myint64 (2147483647 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt32 , nil },
111
- {"int/reflection path - minsize" , myint (2147483647 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt32 , nil },
112
- {"int64/reflection path - minsize too large" , myint64 (2147483648 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
113
- {"int/reflection path - minsize too large" , myint (2147483648 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
114
+ {"int64/reflection path - minsize" , myint64 (math .MaxInt32 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt32 , nil },
115
+ {"int64/reflection path - minsize too large" , myint64 (math .MaxInt32 + 1 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
116
+ {"int64/reflection path - minsize too small" , myint64 (math .MinInt32 - 1 ), & EncodeContext {MinSize : true }, nil , bsonrwtest .WriteInt64 , nil },
117
+ {"int/reflection path - positive int32" , myint (math .MaxInt32 - 1 ), nil , nil , bsonrwtest .WriteInt32 , nil },
118
+ {"int/reflection path - negative int32" , myint (math .MinInt32 + 1 ), nil , nil , bsonrwtest .WriteInt32 , nil },
119
+ {"int/reflection path - MaxInt32" , myint (math .MaxInt32 ), nil , nil , bsonrwtest .WriteInt32 , nil },
120
+ {"int/reflection path - MinInt32" , myint (math .MinInt32 ), nil , nil , bsonrwtest .WriteInt32 , nil },
121
+ {"int/reflection path - larger than MaxInt32" , myint (math .MaxInt32 + 1 ), nil , nil , bsonrwtest .WriteInt64 , nil },
122
+ {"int/reflection path - smaller than MinInt32" , myint (math .MinInt32 - 1 ), nil , nil , bsonrwtest .WriteInt64 , nil },
114
123
},
115
124
},
116
125
{
0 commit comments